{"id":40576,"name":"apache-airflow","ecosystem":"pip","repository_url":"https://github.com/apache/airflow","issues_count":156,"created_at":"2025-06-10T19:52:39.692Z","updated_at":"2025-06-10T19:52:39.692Z","purl":"pkg:pypi/apache-airflow","metadata":{"id":2640964,"name":"apache-airflow","ecosystem":"pypi","description":"Programmatically author, schedule and monitor data pipelines","homepage":"https://airflow.apache.org/","licenses":"Apache Software License","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/apache/airflow","keywords_array":["airflow","automation","dag","data","orchestration","pipelines","workflow"],"namespace":null,"versions_count":231,"first_release_published_at":"2017-05-09T19:53:10.000Z","latest_release_published_at":"2025-06-10T14:33:03.000Z","latest_release_number":"3.0.2","last_synced_at":"2025-06-11T02:01:42.858Z","created_at":"2022-04-10T10:02:37.010Z","updated_at":"2025-06-11T02:02:32.754Z","registry_url":"https://pypi.org/project/apache-airflow/","install_command":"pip install apache-airflow --index-url https://pypi.org/simple","documentation_url":"https://airflow.apache.org/docs/","metadata":{"funding":null,"documentation":"https://airflow.apache.org/docs/","classifiers":["Development Status :: 5 - Production/Stable","Environment :: Console","Environment :: Web Environment","Framework :: Apache Airflow","Intended Audience :: Developers","Intended Audience :: System Administrators","License :: OSI Approved :: Apache Software License","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.9","Topic :: System :: Monitoring"],"normalized_name":"apache-airflow"},"repo_metadata":{"id":30332542,"uuid":"33884891","full_name":"apache/airflow","owner":"apache","description":"Apache Airflow - A platform to programmatically author, schedule, and monitor workflows","archived":false,"fork":false,"pushed_at":"2024-10-29T12:44:06.000Z","size":307668,"stargazers_count":36891,"open_issues_count":1171,"forks_count":14248,"subscribers_count":758,"default_branch":"main","last_synced_at":"2024-10-29T12:44:45.031Z","etag":null,"topics":["airflow","apache","apache-airflow","automation","dag","data-engineering","data-integration","data-orchestrator","data-pipelines","data-science","elt","etl","machine-learning","mlops","orchestration","python","scheduler","workflow","workflow-engine","workflow-orchestration"],"latest_commit_sha":null,"homepage":"https://airflow.apache.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apache.png","metadata":{"files":{"readme":"README.md","changelog":"newsfragments/24842.significant.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-04-13T18:04:58.000Z","updated_at":"2024-10-29T12:44:11.000Z","dependencies_parsed_at":"2023-10-04T12:28:19.831Z","dependency_job_id":"884b4da3-a042-4252-9677-dfaa7b3f8858","html_url":"https://github.com/apache/airflow","commit_stats":{"total_commits":21920,"total_committers":3154,"mean_commits":6.949904882688649,"dds":0.8632755474452555,"last_synced_commit":"9b997638f31fabe9d075a63647e74924f4b5c0c3"},"previous_names":["apache/incubator-airflow","airbnb/airflow"],"tags_count":5577,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/airflow/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222061287,"owners_count":16924680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"apache","name":"The Apache Software Foundation","uuid":"47359","kind":"organization","description":"","email":null,"website":"https://www.apache.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/47359?v=4","repositories_count":2601,"last_synced_at":"2024-05-21T07:19:49.405Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/apache","funding_links":[],"total_stars":1087452,"followers":12811,"following":0,"created_at":"2022-11-02T16:23:23.532Z","updated_at":"2024-05-21T07:20:03.071Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache/repositories"},"tags":[{"name":"constraints-2.10.1rc1","sha":"b55dc325e988c7db914683c231c41459bd748b7f","kind":"tag","published_at":"2024-09-02T13:57:22.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.10.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.10.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.10.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.10.1rc1/manifests"},{"name":"2.10.1rc1","sha":"854173176f372f6509800ed446286c32cb75045e","kind":"tag","published_at":"2024-09-02T13:35:47.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.10.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/2.10.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.10.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.10.1rc1/manifests"},{"name":"python-client-2.10.0","sha":"91f8265b6820eca747634dce39ae0d70aada2640","kind":"tag","published_at":"2024-08-30T16:21:25.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/python-client-2.10.0","html_url":"https://github.com/apache/airflow/releases/tag/python-client-2.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.10.0/manifests"},{"name":"providers-tabular/1.6.1","sha":"2f952909f5028e416c951084727bd71ff8f22b72","kind":"tag","published_at":"2024-08-28T10:31:24.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tabular/1.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-tabular/1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tabular%2F1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tabular%2F1.6.1/manifests"},{"name":"providers-celery/3.8.1","sha":"2f952909f5028e416c951084727bd71ff8f22b72","kind":"tag","published_at":"2024-08-28T10:31:24.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.8.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.8.1/manifests"},{"name":"providers-cncf-kubernetes/8.4.1","sha":"2f952909f5028e416c951084727bd71ff8f22b72","kind":"tag","published_at":"2024-08-28T10:31:24.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.4.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.4.1/manifests"},{"name":"providers-ssh/3.13.1","sha":"2f952909f5028e416c951084727bd71ff8f22b72","kind":"tag","published_at":"2024-08-28T10:31:24.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ssh/3.13.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ssh/3.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.13.1/manifests"},{"name":"providers-openlineage/1.11.0","sha":"2f952909f5028e416c951084727bd71ff8f22b72","kind":"tag","published_at":"2024-08-28T10:31:24.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.11.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.11.0/manifests"},{"name":"python-client-2.10.0rc2","sha":"91f8265b6820eca747634dce39ae0d70aada2640","kind":"tag","published_at":"2024-08-27T10:15:50.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/python-client-2.10.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/python-client-2.10.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.10.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.10.0rc2/manifests"},{"name":"providers-ssh/3.13.1rc1","sha":"2f952909f5028e416c951084727bd71ff8f22b72","kind":"tag","published_at":"2024-08-25T07:44:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ssh/3.13.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ssh/3.13.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.13.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.13.1rc1/manifests"},{"name":"providers-openlineage/1.11.0rc2","sha":"2f952909f5028e416c951084727bd71ff8f22b72","kind":"tag","published_at":"2024-08-25T07:44:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.11.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.11.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.11.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.11.0rc2/manifests"},{"name":"providers-celery/3.8.1rc1","sha":"2f952909f5028e416c951084727bd71ff8f22b72","kind":"tag","published_at":"2024-08-25T07:44:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.8.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.8.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.8.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.8.1rc1/manifests"},{"name":"providers-cncf-kubernetes/8.4.1rc1","sha":"2f952909f5028e416c951084727bd71ff8f22b72","kind":"tag","published_at":"2024-08-25T07:44:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.4.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.4.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.4.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.4.1rc1/manifests"},{"name":"providers-tabular/1.6.1rc1","sha":"2f952909f5028e416c951084727bd71ff8f22b72","kind":"tag","published_at":"2024-08-25T07:44:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tabular/1.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-tabular/1.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tabular%2F1.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tabular%2F1.6.1rc1/manifests"},{"name":"python-client-2.10.0rc1","sha":"91f8265b6820eca747634dce39ae0d70aada2640","kind":"tag","published_at":"2024-08-23T16:15:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/python-client-2.10.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/python-client-2.10.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.10.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.10.0rc1/manifests"},{"name":"providers-apache-hdfs/4.5.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:59.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hdfs/4.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hdfs/4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.5.0/manifests"},{"name":"providers-ydb/1.3.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:59.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ydb/1.3.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-ydb/1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.3.0/manifests"},{"name":"providers-weaviate/2.1.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:59.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/2.1.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F2.1.0/manifests"},{"name":"providers-apache-cassandra/3.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:59.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-cassandra/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-cassandra/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.6.0/manifests"},{"name":"providers-oracle/3.11.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:59.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-oracle/3.11.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-oracle/3.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.11.0/manifests"},{"name":"providers-atlassian-jira/2.7.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:59.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-atlassian-jira/2.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-atlassian-jira/2.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-atlassian-jira%2F2.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-atlassian-jira%2F2.7.0/manifests"},{"name":"providers-postgres/5.12.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:59.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-postgres/5.12.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-postgres/5.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.12.0/manifests"},{"name":"providers-github/2.7.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:59.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-github/2.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-github/2.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.7.0/manifests"},{"name":"providers-apache-kafka/1.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kafka/1.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kafka/1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.6.0/manifests"},{"name":"providers-apache-beam/5.8.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-beam/5.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-beam/5.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.8.0/manifests"},{"name":"providers-segment/3.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-segment/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-segment/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-segment%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-segment%2F3.6.0/manifests"},{"name":"providers-mysql/5.7.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mysql/5.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-mysql/5.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.7.0/manifests"},{"name":"providers-microsoft-mssql/3.9.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-mssql/3.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-mssql/3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.9.0/manifests"},{"name":"providers-presto/5.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-presto/5.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-presto/5.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.6.0/manifests"},{"name":"providers-microsoft-azure/10.4.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.4.0/manifests"},{"name":"providers-apache-hive/8.2.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hive/8.2.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hive/8.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.2.0/manifests"},{"name":"providers-opsgenie/5.7.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opsgenie/5.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-opsgenie/5.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opsgenie%2F5.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opsgenie%2F5.7.0/manifests"},{"name":"providers-airbyte/3.9.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-airbyte/3.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-airbyte/3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.9.0/manifests"},{"name":"providers-cohere/1.3.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cohere/1.3.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-cohere/1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.3.0/manifests"},{"name":"providers-apache-impala/1.5.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-impala/1.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-impala/1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.5.0/manifests"},{"name":"providers-salesforce/5.8.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-salesforce/5.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-salesforce/5.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.8.0/manifests"},{"name":"providers-tabular/1.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tabular/1.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-tabular/1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tabular%2F1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tabular%2F1.6.0/manifests"},{"name":"providers-yandex/3.12.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-yandex/3.12.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-yandex/3.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.12.0/manifests"},{"name":"providers-teradata/2.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.6.0/manifests"},{"name":"providers-slack/8.9.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-slack/8.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-slack/8.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.9.0/manifests"},{"name":"providers-microsoft-winrm/3.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-winrm/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-winrm/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-winrm%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-winrm%2F3.6.0/manifests"},{"name":"providers-arangodb/2.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-arangodb/2.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-arangodb/2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-arangodb%2F2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-arangodb%2F2.6.0/manifests"},{"name":"providers-trino/5.8.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-trino/5.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-trino/5.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.8.0/manifests"},{"name":"providers-apache-kylin/3.7.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kylin/3.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kylin/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.7.0/manifests"},{"name":"providers-discord/3.8.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-discord/3.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-discord/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-discord%2F3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-discord%2F3.8.0/manifests"},{"name":"providers-odbc/4.7.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-odbc/4.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-odbc/4.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.7.0/manifests"},{"name":"providers-papermill/3.8.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-papermill/3.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-papermill/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.8.0/manifests"},{"name":"providers-sqlite/3.9.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sqlite/3.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-sqlite/3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.9.0/manifests"},{"name":"providers-sftp/4.11.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sftp/4.11.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-sftp/4.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.11.0/manifests"},{"name":"providers-smtp/1.8.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-smtp/1.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-smtp/1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.8.0/manifests"},{"name":"providers-apache-pinot/4.5.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pinot/4.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pinot/4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.5.0/manifests"},{"name":"providers-telegram/4.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-telegram/4.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-telegram/4.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.6.0/manifests"},{"name":"providers-amazon/8.28.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.28.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.28.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.28.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.28.0/manifests"},{"name":"providers-dbt-cloud/3.10.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dbt-cloud/3.10.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-dbt-cloud/3.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.10.0/manifests"},{"name":"providers-ftp/3.11.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ftp/3.11.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-ftp/3.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.11.0/manifests"},{"name":"providers-apache-flink/1.5.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-flink/1.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-flink/1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.5.0/manifests"},{"name":"providers-snowflake/5.7.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.7.0/manifests"},{"name":"providers-apache-livy/3.9.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-livy/3.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-livy/3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.9.0/manifests"},{"name":"providers-apache-drill/2.8.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-drill/2.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-drill/2.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.8.0/manifests"},{"name":"providers-tableau/4.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tableau/4.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-tableau/4.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.6.0/manifests"},{"name":"providers-imap/3.7.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-imap/3.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-imap/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-imap%2F3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-imap%2F3.7.0/manifests"},{"name":"providers-cloudant/3.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cloudant/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-cloudant/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.6.0/manifests"},{"name":"providers-databricks/6.9.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.9.0/manifests"},{"name":"providers-singularity/3.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-singularity/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-singularity/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-singularity%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-singularity%2F3.6.0/manifests"},{"name":"providers-pgvector/1.3.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pgvector/1.3.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-pgvector/1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.3.0/manifests"},{"name":"providers-cncf-kubernetes/8.4.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.4.0/manifests"},{"name":"providers-sendgrid/3.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sendgrid/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-sendgrid/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sendgrid%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sendgrid%2F3.6.0/manifests"},{"name":"providers-samba/4.8.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-samba/4.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-samba/4.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.8.0/manifests"},{"name":"providers-http/4.13.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-http/4.13.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-http/4.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.13.0/manifests"},{"name":"providers-google/10.22.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.22.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.22.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.22.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.22.0/manifests"},{"name":"providers-alibaba/2.9.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-alibaba/2.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-alibaba/2.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.9.0/manifests"},{"name":"providers-qdrant/1.2.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-qdrant/1.2.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-qdrant/1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.2.0/manifests"},{"name":"providers-openai/1.3.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openai/1.3.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-openai/1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.3.0/manifests"},{"name":"providers-fab/1.3.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.3.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.3.0/manifests"},{"name":"providers-redis/3.8.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-redis/3.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-redis/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.8.0/manifests"},{"name":"providers-influxdb/2.7.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-influxdb/2.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-influxdb/2.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.7.0/manifests"},{"name":"providers-opensearch/1.4.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opensearch/1.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-opensearch/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.4.0/manifests"},{"name":"providers-facebook/3.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-facebook/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-facebook/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.6.0/manifests"},{"name":"providers-grpc/3.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-grpc/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-grpc/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.6.0/manifests"},{"name":"providers-dingding/3.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dingding/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-dingding/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dingding%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dingding%2F3.6.0/manifests"},{"name":"providers-vertica/3.9.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-vertica/3.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-vertica/3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.9.0/manifests"},{"name":"providers-celery/3.8.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.8.0/manifests"},{"name":"providers-openfaas/3.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openfaas/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-openfaas/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openfaas%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openfaas%2F3.6.0/manifests"},{"name":"providers-elasticsearch/5.5.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-elasticsearch/5.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-elasticsearch/5.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.5.0/manifests"},{"name":"providers-jenkins/3.7.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jenkins/3.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-jenkins/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jenkins%2F3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jenkins%2F3.7.0/manifests"},{"name":"providers-asana/2.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-asana/2.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-asana/2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-asana%2F2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-asana%2F2.6.0/manifests"},{"name":"providers-hashicorp/3.8.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-hashicorp/3.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-hashicorp/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.8.0/manifests"},{"name":"providers-pinecone/2.1.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pinecone/2.1.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-pinecone/2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.1.0/manifests"},{"name":"providers-apache-pig/4.5.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pig/4.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pig/4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pig%2F4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pig%2F4.5.0/manifests"},{"name":"providers-apprise/1.4.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apprise/1.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apprise/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.4.0/manifests"},{"name":"providers-jdbc/4.5.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jdbc/4.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-jdbc/4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.5.0/manifests"},{"name":"providers-common-sql/1.16.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.16.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.16.0/manifests"},{"name":"providers-zendesk/4.8.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-zendesk/4.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-zendesk/4.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-zendesk%2F4.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-zendesk%2F4.8.0/manifests"},{"name":"providers-docker/3.13.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.13.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.13.0/manifests"},{"name":"providers-exasol/4.6.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-exasol/4.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-exasol/4.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.6.0/manifests"},{"name":"providers-datadog/3.7.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-datadog/3.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-datadog/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-datadog%2F3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-datadog%2F3.7.0/manifests"},{"name":"providers-common-compat/1.2.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-compat/1.2.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-compat/1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-compat%2F1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-compat%2F1.2.0/manifests"},{"name":"providers-neo4j/3.7.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-neo4j/3.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-neo4j/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-neo4j%2F3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-neo4j%2F3.7.0/manifests"},{"name":"providers-ssh/3.13.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ssh/3.13.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-ssh/3.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.13.0/manifests"},{"name":"providers-apache-iceberg/1.1.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-iceberg/1.1.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-iceberg/1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-iceberg%2F1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-iceberg%2F1.1.0/manifests"},{"name":"providers-pagerduty/3.8.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pagerduty/3.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-pagerduty/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.8.0/manifests"},{"name":"providers-microsoft-psrp/2.8.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-psrp/2.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-psrp/2.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.8.0/manifests"},{"name":"providers-apache-druid/3.11.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-druid/3.11.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-druid/3.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.11.0/manifests"},{"name":"providers-mongo/4.2.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mongo/4.2.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-mongo/4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.2.0/manifests"},{"name":"providers-apache-spark/4.10.0","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-22T10:37:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-spark/4.10.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-spark/4.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.10.0/manifests"},{"name":"providers-apache-druid/3.11.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-druid/3.11.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-druid/3.11.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.11.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.11.0rc1/manifests"},{"name":"providers-smtp/1.8.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-smtp/1.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-smtp/1.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.8.0rc1/manifests"},{"name":"providers-fab/1.3.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.3.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.3.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.3.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.3.0rc1/manifests"},{"name":"providers-microsoft-psrp/2.8.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-psrp/2.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-psrp/2.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.8.0rc1/manifests"},{"name":"providers-github/2.7.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-github/2.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-github/2.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.7.0rc1/manifests"},{"name":"providers-apache-cassandra/3.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-cassandra/3.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-cassandra/3.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.6.0rc1/manifests"},{"name":"providers-apache-flink/1.5.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-flink/1.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-flink/1.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.5.0rc1/manifests"},{"name":"providers-slack/8.9.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-slack/8.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-slack/8.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.9.0rc1/manifests"},{"name":"providers-apache-pinot/4.5.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pinot/4.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pinot/4.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.5.0rc1/manifests"},{"name":"providers-pgvector/1.3.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pgvector/1.3.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-pgvector/1.3.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.3.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.3.0rc1/manifests"},{"name":"providers-dingding/3.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dingding/3.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-dingding/3.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dingding%2F3.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dingding%2F3.6.0rc1/manifests"},{"name":"providers-zendesk/4.8.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-zendesk/4.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-zendesk/4.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-zendesk%2F4.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-zendesk%2F4.8.0rc1/manifests"},{"name":"providers-apache-beam/5.8.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-beam/5.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-beam/5.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.8.0rc1/manifests"},{"name":"providers-apache-drill/2.8.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-drill/2.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-drill/2.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.8.0rc1/manifests"},{"name":"providers-apache-iceberg/1.1.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-iceberg/1.1.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-iceberg/1.1.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-iceberg%2F1.1.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-iceberg%2F1.1.0rc1/manifests"},{"name":"providers-airbyte/3.9.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-airbyte/3.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-airbyte/3.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.9.0rc1/manifests"},{"name":"providers-celery/3.8.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.8.0rc1/manifests"},{"name":"providers-ssh/3.13.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ssh/3.13.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ssh/3.13.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.13.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.13.0rc1/manifests"},{"name":"providers-atlassian-jira/2.7.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-atlassian-jira/2.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-atlassian-jira/2.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-atlassian-jira%2F2.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-atlassian-jira%2F2.7.0rc1/manifests"},{"name":"providers-openfaas/3.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openfaas/3.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openfaas/3.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openfaas%2F3.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openfaas%2F3.6.0rc1/manifests"},{"name":"providers-google/10.22.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.22.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.22.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.22.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.22.0rc1/manifests"},{"name":"providers-presto/5.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-presto/5.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-presto/5.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.6.0rc1/manifests"},{"name":"providers-snowflake/5.7.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.7.0rc1/manifests"},{"name":"providers-apprise/1.4.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apprise/1.4.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apprise/1.4.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.4.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.4.0rc1/manifests"},{"name":"providers-facebook/3.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-facebook/3.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-facebook/3.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.6.0rc1/manifests"},{"name":"providers-asana/2.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-asana/2.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-asana/2.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-asana%2F2.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-asana%2F2.6.0rc1/manifests"},{"name":"providers-vertica/3.9.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-vertica/3.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-vertica/3.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.9.0rc1/manifests"},{"name":"providers-yandex/3.12.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-yandex/3.12.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-yandex/3.12.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.12.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.12.0rc1/manifests"},{"name":"providers-jenkins/3.7.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jenkins/3.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-jenkins/3.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jenkins%2F3.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jenkins%2F3.7.0rc1/manifests"},{"name":"providers-samba/4.8.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-samba/4.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-samba/4.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.8.0rc1/manifests"},{"name":"providers-sqlite/3.9.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sqlite/3.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sqlite/3.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.9.0rc1/manifests"},{"name":"providers-http/4.13.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-http/4.13.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-http/4.13.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.13.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.13.0rc1/manifests"},{"name":"providers-grpc/3.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-grpc/3.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-grpc/3.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.6.0rc1/manifests"},{"name":"providers-opensearch/1.4.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opensearch/1.4.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-opensearch/1.4.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.4.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.4.0rc1/manifests"},{"name":"providers-mysql/5.7.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mysql/5.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-mysql/5.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.7.0rc1/manifests"},{"name":"providers-papermill/3.8.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-papermill/3.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-papermill/3.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.8.0rc1/manifests"},{"name":"providers-qdrant/1.2.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-qdrant/1.2.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-qdrant/1.2.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.2.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.2.0rc1/manifests"},{"name":"providers-openai/1.3.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openai/1.3.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openai/1.3.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.3.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.3.0rc1/manifests"},{"name":"providers-docker/3.13.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.13.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.13.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.13.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.13.0rc1/manifests"},{"name":"providers-imap/3.7.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-imap/3.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-imap/3.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-imap%2F3.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-imap%2F3.7.0rc1/manifests"},{"name":"providers-cncf-kubernetes/8.4.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.4.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.4.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.4.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.4.0rc1/manifests"},{"name":"providers-redis/3.8.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-redis/3.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-redis/3.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.8.0rc1/manifests"},{"name":"providers-elasticsearch/5.5.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-elasticsearch/5.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-elasticsearch/5.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.5.0rc1/manifests"},{"name":"providers-common-sql/1.16.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.16.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.16.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.16.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.16.0rc1/manifests"},{"name":"providers-singularity/3.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-singularity/3.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-singularity/3.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-singularity%2F3.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-singularity%2F3.6.0rc1/manifests"},{"name":"providers-cohere/1.3.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cohere/1.3.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cohere/1.3.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.3.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.3.0rc1/manifests"},{"name":"providers-ftp/3.11.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ftp/3.11.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ftp/3.11.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.11.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.11.0rc1/manifests"},{"name":"providers-alibaba/2.9.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-alibaba/2.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-alibaba/2.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.9.0rc1/manifests"},{"name":"providers-dbt-cloud/3.10.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dbt-cloud/3.10.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-dbt-cloud/3.10.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.10.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.10.0rc1/manifests"},{"name":"providers-oracle/3.11.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-oracle/3.11.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-oracle/3.11.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.11.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.11.0rc1/manifests"},{"name":"providers-discord/3.8.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-discord/3.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-discord/3.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-discord%2F3.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-discord%2F3.8.0rc1/manifests"},{"name":"providers-sftp/4.11.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sftp/4.11.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sftp/4.11.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.11.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.11.0rc1/manifests"},{"name":"providers-apache-kylin/3.7.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kylin/3.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kylin/3.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.7.0rc1/manifests"},{"name":"providers-hashicorp/3.8.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-hashicorp/3.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-hashicorp/3.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.8.0rc1/manifests"},{"name":"providers-opsgenie/5.7.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opsgenie/5.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-opsgenie/5.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opsgenie%2F5.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opsgenie%2F5.7.0rc1/manifests"},{"name":"providers-mongo/4.2.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mongo/4.2.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-mongo/4.2.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.2.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.2.0rc1/manifests"},{"name":"providers-openlineage/1.11.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.11.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.11.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.11.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.11.0rc1/manifests"},{"name":"providers-segment/3.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-segment/3.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-segment/3.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-segment%2F3.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-segment%2F3.6.0rc1/manifests"},{"name":"providers-arangodb/2.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-arangodb/2.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-arangodb/2.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-arangodb%2F2.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-arangodb%2F2.6.0rc1/manifests"},{"name":"providers-cloudant/3.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cloudant/3.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cloudant/3.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.6.0rc1/manifests"},{"name":"providers-odbc/4.7.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-odbc/4.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-odbc/4.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.7.0rc1/manifests"},{"name":"providers-neo4j/3.7.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-neo4j/3.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-neo4j/3.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-neo4j%2F3.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-neo4j%2F3.7.0rc1/manifests"},{"name":"providers-microsoft-mssql/3.9.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-mssql/3.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-mssql/3.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.9.0rc1/manifests"},{"name":"providers-apache-kafka/1.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kafka/1.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kafka/1.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.6.0rc1/manifests"},{"name":"providers-microsoft-winrm/3.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-winrm/3.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-winrm/3.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-winrm%2F3.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-winrm%2F3.6.0rc1/manifests"},{"name":"providers-apache-hive/8.2.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hive/8.2.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hive/8.2.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.2.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.2.0rc1/manifests"},{"name":"providers-influxdb/2.7.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-influxdb/2.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-influxdb/2.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.7.0rc1/manifests"},{"name":"providers-pagerduty/3.8.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pagerduty/3.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-pagerduty/3.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.8.0rc1/manifests"},{"name":"providers-microsoft-azure/10.4.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.4.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.4.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.4.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.4.0rc1/manifests"},{"name":"providers-trino/5.8.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-trino/5.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-trino/5.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.8.0rc1/manifests"},{"name":"providers-amazon/8.28.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.28.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.28.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.28.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.28.0rc1/manifests"},{"name":"providers-jdbc/4.5.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jdbc/4.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-jdbc/4.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.5.0rc1/manifests"},{"name":"providers-apache-impala/1.5.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-impala/1.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-impala/1.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.5.0rc1/manifests"},{"name":"providers-postgres/5.12.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-postgres/5.12.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-postgres/5.12.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.12.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.12.0rc1/manifests"},{"name":"providers-sendgrid/3.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sendgrid/3.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sendgrid/3.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sendgrid%2F3.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sendgrid%2F3.6.0rc1/manifests"},{"name":"providers-ydb/1.3.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ydb/1.3.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ydb/1.3.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.3.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.3.0rc1/manifests"},{"name":"providers-tableau/4.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tableau/4.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-tableau/4.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.6.0rc1/manifests"},{"name":"providers-telegram/4.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-telegram/4.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-telegram/4.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.6.0rc1/manifests"},{"name":"providers-apache-pig/4.5.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pig/4.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pig/4.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pig%2F4.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pig%2F4.5.0rc1/manifests"},{"name":"providers-teradata/2.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.6.0rc1/manifests"},{"name":"providers-weaviate/2.1.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/2.1.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/2.1.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F2.1.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F2.1.0rc1/manifests"},{"name":"providers-datadog/3.7.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-datadog/3.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-datadog/3.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-datadog%2F3.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-datadog%2F3.7.0rc1/manifests"},{"name":"providers-apache-hdfs/4.5.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hdfs/4.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hdfs/4.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.5.0rc1/manifests"},{"name":"providers-apache-livy/3.9.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-livy/3.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-livy/3.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.9.0rc1/manifests"},{"name":"providers-exasol/4.6.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-exasol/4.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-exasol/4.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.6.0rc1/manifests"},{"name":"providers-pinecone/2.1.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pinecone/2.1.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-pinecone/2.1.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.1.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.1.0rc1/manifests"},{"name":"providers-apache-spark/4.10.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-spark/4.10.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-spark/4.10.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.10.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.10.0rc1/manifests"},{"name":"providers-common-compat/1.2.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-compat/1.2.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-compat/1.2.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-compat%2F1.2.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-compat%2F1.2.0rc1/manifests"},{"name":"providers-salesforce/5.8.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-salesforce/5.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-salesforce/5.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.8.0rc1/manifests"},{"name":"providers-databricks/6.9.0rc1","sha":"75fb7acbaca09a040067f0a5a37637ff44eb9e14","kind":"tag","published_at":"2024-08-19T06:31:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.9.0rc1/manifests"},{"name":"2.10.0","sha":"e001b88f5875cfd7e295891a0bbdbc75a3dccbfb","kind":"tag","published_at":"2024-08-15T21:08:17.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.10.0","html_url":"https://github.com/apache/airflow/releases/tag/2.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.10.0/manifests"},{"name":"constraints-2.10.0","sha":"fb55fc23dd3b7492554bfd17cf4ec87f0ab99e41","kind":"tag","published_at":"2024-08-15T21:05:52.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.10.0","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.10.0/manifests"},{"name":"constraints-2.10.0rc1","sha":"fb55fc23dd3b7492554bfd17cf4ec87f0ab99e41","kind":"tag","published_at":"2024-08-12T15:57:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.10.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.10.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.10.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.10.0rc1/manifests"},{"name":"2.10.0rc1","sha":"e001b88f5875cfd7e295891a0bbdbc75a3dccbfb","kind":"tag","published_at":"2024-08-12T14:58:18.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.10.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/2.10.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.10.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.10.0rc1/manifests"},{"name":"providers-ssh/3.12.0","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:44.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ssh/3.12.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-ssh/3.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.12.0/manifests"},{"name":"providers-apache-pinot/4.4.2","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:44.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pinot/4.4.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pinot/4.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.4.2/manifests"},{"name":"providers-ftp/3.10.1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:44.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ftp/3.10.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ftp/3.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.10.1/manifests"},{"name":"providers-apache-drill/2.7.3","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:44.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-drill/2.7.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-drill/2.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.3/manifests"},{"name":"providers-cncf-kubernetes/8.3.4","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:44.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.3.4","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.4/manifests"},{"name":"providers-jdbc/4.4.0","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:44.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jdbc/4.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-jdbc/4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.4.0/manifests"},{"name":"providers-apache-impala/1.4.2","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:44.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-impala/1.4.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-impala/1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.4.2/manifests"},{"name":"providers-slack/8.8.0","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-slack/8.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-slack/8.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.8.0/manifests"},{"name":"providers-celery/3.7.3","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.7.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.3/manifests"},{"name":"providers-snowflake/5.6.1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.6.1/manifests"},{"name":"providers-sftp/4.10.3","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sftp/4.10.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-sftp/4.10.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.3/manifests"},{"name":"providers-sqlite/3.8.2","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sqlite/3.8.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-sqlite/3.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.8.2/manifests"},{"name":"providers-common-compat/1.1.0","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-compat/1.1.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-compat/1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-compat%2F1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-compat%2F1.1.0/manifests"},{"name":"providers-apprise/1.3.2","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apprise/1.3.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apprise/1.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.3.2/manifests"},{"name":"providers-ydb/1.2.0","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ydb/1.2.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-ydb/1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.2.0/manifests"},{"name":"providers-pgvector/1.2.2","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pgvector/1.2.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-pgvector/1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.2.2/manifests"},{"name":"providers-teradata/2.5.0","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.5.0/manifests"},{"name":"providers-qdrant/1.1.2","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-qdrant/1.1.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-qdrant/1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.1.2/manifests"},{"name":"providers-elasticsearch/5.4.2","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-elasticsearch/5.4.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-elasticsearch/5.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.4.2/manifests"},{"name":"providers-openlineage/1.10.0","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.10.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.10.0/manifests"},{"name":"providers-postgres/5.11.3","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-postgres/5.11.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-postgres/5.11.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.3/manifests"},{"name":"providers-docker/3.12.3","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.12.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.12.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.3/manifests"},{"name":"providers-databricks/6.8.0","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.8.0/manifests"},{"name":"providers-amazon/8.27.0","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.27.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.27.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.27.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.27.0/manifests"},{"name":"providers-common-sql/1.15.0","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.15.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.15.0/manifests"},{"name":"providers-common-io/1.4.0","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-io/1.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-io/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-io%2F1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-io%2F1.4.0/manifests"},{"name":"providers-exasol/4.5.3","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-exasol/4.5.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-exasol/4.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.3/manifests"},{"name":"providers-mysql/5.6.3","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mysql/5.6.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-mysql/5.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.3/manifests"},{"name":"providers-apache-beam/5.7.2","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-beam/5.7.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-beam/5.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.7.2/manifests"},{"name":"providers-odbc/4.6.3","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-odbc/4.6.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-odbc/4.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.3/manifests"},{"name":"providers-microsoft-mssql/3.8.0","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-mssql/3.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-mssql/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.8.0/manifests"},{"name":"providers-microsoft-azure/10.3.0","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.3.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.3.0/manifests"},{"name":"providers-apache-druid/3.10.2","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-druid/3.10.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-druid/3.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.10.2/manifests"},{"name":"providers-google/10.21.1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-06T20:34:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.21.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.21.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.21.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.21.1/manifests"},{"name":"providers-apache-beam/5.7.2rc2","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-beam/5.7.2rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-beam/5.7.2rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.7.2rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.7.2rc2/manifests"},{"name":"providers-odbc/4.6.3rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-odbc/4.6.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-odbc/4.6.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.3rc1/manifests"},{"name":"providers-sftp/4.10.3rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sftp/4.10.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sftp/4.10.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.3rc1/manifests"},{"name":"providers-apache-impala/1.4.2rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-impala/1.4.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-impala/1.4.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.4.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.4.2rc1/manifests"},{"name":"providers-jdbc/4.4.0rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jdbc/4.4.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-jdbc/4.4.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.4.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.4.0rc1/manifests"},{"name":"providers-common-io/1.4.0rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-io/1.4.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-io/1.4.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-io%2F1.4.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-io%2F1.4.0rc1/manifests"},{"name":"providers-google/10.21.1rc2","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.21.1rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.21.1rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.21.1rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.21.1rc2/manifests"},{"name":"providers-ftp/3.10.1rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ftp/3.10.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ftp/3.10.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.10.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.10.1rc1/manifests"},{"name":"providers-exasol/4.5.3rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-exasol/4.5.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-exasol/4.5.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.3rc1/manifests"},{"name":"providers-elasticsearch/5.4.2rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-elasticsearch/5.4.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-elasticsearch/5.4.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.4.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.4.2rc1/manifests"},{"name":"providers-apache-drill/2.7.3rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-drill/2.7.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-drill/2.7.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.3rc1/manifests"},{"name":"providers-microsoft-azure/10.3.0rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.3.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.3.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.3.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.3.0rc1/manifests"},{"name":"providers-amazon/8.27.0rc2","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.27.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.27.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.27.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.27.0rc2/manifests"},{"name":"providers-ssh/3.12.0rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ssh/3.12.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ssh/3.12.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.12.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.12.0rc1/manifests"},{"name":"providers-teradata/2.5.0rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.5.0rc1/manifests"},{"name":"providers-ydb/1.2.0rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ydb/1.2.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ydb/1.2.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.2.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.2.0rc1/manifests"},{"name":"providers-snowflake/5.6.1rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.6.1rc1/manifests"},{"name":"providers-apache-pinot/4.4.2rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pinot/4.4.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pinot/4.4.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.4.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.4.2rc1/manifests"},{"name":"providers-pgvector/1.2.2rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pgvector/1.2.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-pgvector/1.2.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.2.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.2.2rc1/manifests"},{"name":"providers-cncf-kubernetes/8.3.4rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.3.4rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.3.4rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.4rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.4rc1/manifests"},{"name":"providers-sqlite/3.8.2rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sqlite/3.8.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sqlite/3.8.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.8.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.8.2rc1/manifests"},{"name":"providers-common-compat/1.1.0rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-compat/1.1.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-compat/1.1.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-compat%2F1.1.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-compat%2F1.1.0rc1/manifests"},{"name":"providers-openlineage/1.10.0rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.10.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.10.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.10.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.10.0rc1/manifests"},{"name":"providers-mysql/5.6.3rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mysql/5.6.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-mysql/5.6.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.3rc1/manifests"},{"name":"providers-microsoft-mssql/3.8.0rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-mssql/3.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-mssql/3.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.8.0rc1/manifests"},{"name":"providers-qdrant/1.1.2rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-qdrant/1.1.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-qdrant/1.1.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.1.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.1.2rc1/manifests"},{"name":"providers-common-sql/1.15.0rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.15.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.15.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.15.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.15.0rc1/manifests"},{"name":"providers-apache-druid/3.10.2rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-druid/3.10.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-druid/3.10.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.10.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.10.2rc1/manifests"},{"name":"providers-apprise/1.3.2rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apprise/1.3.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apprise/1.3.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.3.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.3.2rc1/manifests"},{"name":"providers-postgres/5.11.3rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-postgres/5.11.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-postgres/5.11.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.3rc1/manifests"},{"name":"providers-databricks/6.8.0rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.8.0rc1/manifests"},{"name":"providers-docker/3.12.3rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.12.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.12.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.3rc1/manifests"},{"name":"providers-slack/8.8.0rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-slack/8.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-slack/8.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.8.0rc1/manifests"},{"name":"providers-celery/3.7.3rc1","sha":"d23881c6489916113921dcedf85077441b44aaf3","kind":"tag","published_at":"2024-08-03T15:01:05.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.7.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.7.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.3rc1/manifests"},{"name":"constraints-2.10.0b2","sha":"b5b51422c6028b70f25b6a744b9a9acb22effb4a","kind":"tag","published_at":"2024-08-01T18:11:51.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.10.0b2","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.10.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.10.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.10.0b2/manifests"},{"name":"2.10.0b2","sha":"002a0753a2521ec47d6654deecf79b30a5580bd9","kind":"tag","published_at":"2024-08-01T17:54:00.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.10.0b2","html_url":"https://github.com/apache/airflow/releases/tag/2.10.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.10.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.10.0b2/manifests"},{"name":"providers-fab/1.2.2","sha":"7126678e87c11665c06ec29595472cfaa0c7fdd6","kind":"tag","published_at":"2024-07-31T14:18:50.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.2.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.2.2/manifests"},{"name":"python-client-2.9.1","sha":"9cb7c47ff2b89890a3eb716cf2a174ee71ef0af3","kind":"tag","published_at":"2024-07-29T14:02:42.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/python-client-2.9.1","html_url":"https://github.com/apache/airflow/releases/tag/python-client-2.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.9.1/manifests"},{"name":"providers-amazon/8.27.0rc1","sha":"7126678e87c11665c06ec29595472cfaa0c7fdd6","kind":"tag","published_at":"2024-07-28T10:31:25.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.27.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.27.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.27.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.27.0rc1/manifests"},{"name":"providers-fab/1.2.2rc1","sha":"7126678e87c11665c06ec29595472cfaa0c7fdd6","kind":"tag","published_at":"2024-07-28T10:31:25.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.2.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.2.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.2.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.2.2rc1/manifests"},{"name":"providers-google/10.21.1rc1","sha":"7126678e87c11665c06ec29595472cfaa0c7fdd6","kind":"tag","published_at":"2024-07-28T10:31:25.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.21.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.21.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.21.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.21.1rc1/manifests"},{"name":"2.10.0b1","sha":"56068df2ed69ee879453b43fc89bf9776f772f31","kind":"tag","published_at":"2024-07-25T14:48:37.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.10.0b1","html_url":"https://github.com/apache/airflow/releases/tag/2.10.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.10.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.10.0b1/manifests"},{"name":"providers-apache-spark/4.9.0","sha":"0b0f8f0fc91891c9aa06fc6c23130a916e841872","kind":"tag","published_at":"2024-07-25T14:17:37.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-spark/4.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-spark/4.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.9.0/manifests"},{"name":"constraints-2.10.0b1","sha":"6a121456f5cec0760307509e068446cc820e42fe","kind":"commit","published_at":"2024-07-25T13:53:50.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.10.0b1","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.10.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.10.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.10.0b1/manifests"},{"name":"python-client-2.9.1rc1","sha":"9cb7c47ff2b89890a3eb716cf2a174ee71ef0af3","kind":"tag","published_at":"2024-07-25T06:21:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/python-client-2.9.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/python-client-2.9.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.9.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.9.1rc1/manifests"},{"name":"helm-chart/1.15.0","sha":"ff7463b1624d91fb6478ec367bbf84b88fb9b83d","kind":"tag","published_at":"2024-07-24T12:32:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/helm-chart/1.15.0","html_url":"https://github.com/apache/airflow/releases/tag/helm-chart/1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.15.0/manifests"},{"name":"python-client-2.9.3rc1","sha":"70a928c1c2b824a8256ca1e7d8a9b492987cbab7","kind":"tag","published_at":"2024-07-22T14:50:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/python-client-2.9.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/python-client-2.9.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.9.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.9.3rc1/manifests"},{"name":"providers-apache-beam/5.7.2rc1","sha":"0b0f8f0fc91891c9aa06fc6c23130a916e841872","kind":"tag","published_at":"2024-07-21T07:33:41.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-beam/5.7.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-beam/5.7.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.7.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.7.2rc1/manifests"},{"name":"providers-apache-spark/4.9.0rc1","sha":"0b0f8f0fc91891c9aa06fc6c23130a916e841872","kind":"tag","published_at":"2024-07-21T07:33:41.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-spark/4.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-spark/4.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.9.0rc1/manifests"},{"name":"helm-chart/1.15.0rc1","sha":"ff7463b1624d91fb6478ec367bbf84b88fb9b83d","kind":"tag","published_at":"2024-07-21T02:59:42.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/helm-chart/1.15.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/helm-chart/1.15.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.15.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.15.0rc1/manifests"},{"name":"2.9.3","sha":"81845de9d95a733b4eb7826aaabe23ba9813eba3","kind":"tag","published_at":"2024-07-16T07:14:53.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.9.3","html_url":"https://github.com/apache/airflow/releases/tag/2.9.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.3/manifests"},{"name":"constraints-2.9.3","sha":"fe10edfb85bea62b7d09eaaa7712fc0a882e11d4","kind":"tag","published_at":"2024-07-16T07:13:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.9.3","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.9.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.3/manifests"},{"name":"providers-weaviate/2.0.0","sha":"c09fcdf1d0e69497cf1b628df9ba3349eb688256","kind":"tag","published_at":"2024-07-15T11:42:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/2.0.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F2.0.0/manifests"},{"name":"providers-amazon/8.26.0","sha":"c09fcdf1d0e69497cf1b628df9ba3349eb688256","kind":"tag","published_at":"2024-07-15T11:42:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.26.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.26.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.26.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.26.0/manifests"},{"name":"constraints-2.9.3rc1","sha":"fe10edfb85bea62b7d09eaaa7712fc0a882e11d4","kind":"tag","published_at":"2024-07-12T15:57:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.9.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.9.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.3rc1/manifests"},{"name":"2.9.3rc1","sha":"81845de9d95a733b4eb7826aaabe23ba9813eba3","kind":"tag","published_at":"2024-07-12T15:40:48.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.9.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/2.9.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.3rc1/manifests"},{"name":"providers-amazon/8.26.0rc2","sha":"c09fcdf1d0e69497cf1b628df9ba3349eb688256","kind":"tag","published_at":"2024-07-12T14:06:29.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.26.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.26.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.26.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.26.0rc2/manifests"},{"name":"providers-weaviate/2.0.0rc2","sha":"c09fcdf1d0e69497cf1b628df9ba3349eb688256","kind":"tag","published_at":"2024-07-12T14:06:29.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/2.0.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/2.0.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F2.0.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F2.0.0rc2/manifests"},{"name":"providers-ydb/1.1.0","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-12T12:38:31.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ydb/1.1.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-ydb/1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.1.0/manifests"},{"name":"providers-docker/3.12.2","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-12T12:38:31.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.12.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.2/manifests"},{"name":"providers-databricks/6.7.0","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-12T12:38:31.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.7.0/manifests"},{"name":"providers-influxdb/2.6.0","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-12T12:38:31.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-influxdb/2.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-influxdb/2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.6.0/manifests"},{"name":"providers-google/10.21.0","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-12T12:38:31.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.21.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.21.0/manifests"},{"name":"providers-oracle/3.10.3","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-12T12:38:31.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-oracle/3.10.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-oracle/3.10.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.3/manifests"},{"name":"providers-common-sql/1.14.2","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-12T12:38:31.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.14.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.14.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.14.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.14.2/manifests"},{"name":"providers-microsoft-azure/10.2.0","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-12T12:38:31.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.2.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.2.0/manifests"},{"name":"providers-snowflake/5.6.0","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-12T12:38:31.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.6.0/manifests"},{"name":"providers-cncf-kubernetes/8.3.3","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-12T12:38:31.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.3.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.3/manifests"},{"name":"providers-openlineage/1.9.1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-12T12:38:31.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.9.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.9.1/manifests"},{"name":"providers-teradata/2.4.0","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-12T12:38:31.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.4.0/manifests"},{"name":"providers-fab/1.2.1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-12T12:38:31.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.2.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.2.1/manifests"},{"name":"providers-ydb/1.1.0rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:52.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ydb/1.1.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ydb/1.1.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.1.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.1.0rc1/manifests"},{"name":"providers-influxdb/2.6.0rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:52.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-influxdb/2.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-influxdb/2.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.6.0rc1/manifests"},{"name":"providers-cncf-kubernetes/8.3.3rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:52.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.3.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.3.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.3rc1/manifests"},{"name":"providers-amazon/8.26.0rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:52.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.26.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.26.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.26.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.26.0rc1/manifests"},{"name":"providers-openlineage/1.9.1rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:52.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.9.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.9.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.9.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.9.1rc1/manifests"},{"name":"providers-teradata/2.4.0rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:51.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.4.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.4.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.4.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.4.0rc1/manifests"},{"name":"providers-oracle/3.10.3rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:51.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-oracle/3.10.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-oracle/3.10.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.3rc1/manifests"},{"name":"providers-weaviate/2.0.0rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:51.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/2.0.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/2.0.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F2.0.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F2.0.0rc1/manifests"},{"name":"providers-microsoft-azure/10.2.0rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:51.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.2.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.2.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.2.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.2.0rc1/manifests"},{"name":"providers-common-sql/1.14.2rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:51.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.14.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.14.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.14.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.14.2rc1/manifests"},{"name":"providers-google/10.21.0rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:51.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.21.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.21.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.21.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.21.0rc1/manifests"},{"name":"providers-fab/1.2.1rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:51.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.2.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.2.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.2.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.2.1rc1/manifests"},{"name":"providers-docker/3.12.2rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:51.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.12.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.12.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.2rc1/manifests"},{"name":"providers-databricks/6.7.0rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:51.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.7.0rc1/manifests"},{"name":"providers-snowflake/5.6.0rc1","sha":"09a7bd1d585d2d306dd30435689f22b614fe0abf","kind":"tag","published_at":"2024-07-09T06:43:51.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.6.0rc1/manifests"},{"name":"providers-openlineage/1.9.0","sha":"0fae73dc459a221e7a8cc0664b8c6c94555f6337","kind":"tag","published_at":"2024-07-04T18:21:57.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.9.0/manifests"},{"name":"providers-openlineage/1.9.0rc2","sha":"0fae73dc459a221e7a8cc0664b8c6c94555f6337","kind":"tag","published_at":"2024-07-02T15:49:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.9.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.9.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.9.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.9.0rc2/manifests"},{"name":"providers-github/2.6.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-github/2.6.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-github/2.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.6.2/manifests"},{"name":"providers-http/4.12.0","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-http/4.12.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-http/4.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.12.0/manifests"},{"name":"providers-mongo/4.1.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mongo/4.1.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-mongo/4.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.1.2/manifests"},{"name":"providers-telegram/4.5.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-telegram/4.5.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-telegram/4.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.5.2/manifests"},{"name":"providers-mysql/5.6.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mysql/5.6.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-mysql/5.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.2/manifests"},{"name":"providers-microsoft-azure/10.1.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.1.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.1.2/manifests"},{"name":"providers-presto/5.5.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-presto/5.5.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-presto/5.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.5.2/manifests"},{"name":"providers-pagerduty/3.7.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pagerduty/3.7.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-pagerduty/3.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.7.2/manifests"},{"name":"providers-postgres/5.11.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-postgres/5.11.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-postgres/5.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.2/manifests"},{"name":"providers-odbc/4.6.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-odbc/4.6.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-odbc/4.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.2/manifests"},{"name":"providers-apache-kafka/1.5.0","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kafka/1.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kafka/1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.5.0/manifests"},{"name":"providers-common-compat/1.0.0","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-compat/1.0.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-compat/1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-compat%2F1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-compat%2F1.0.0/manifests"},{"name":"providers-apache-flink/1.4.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-flink/1.4.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-flink/1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.4.2/manifests"},{"name":"providers-dbt-cloud/3.9.0","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dbt-cloud/3.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-dbt-cloud/3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.9.0/manifests"},{"name":"providers-common-sql/1.14.1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.14.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.14.1/manifests"},{"name":"providers-databricks/6.6.0","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.6.0/manifests"},{"name":"providers-teradata/2.3.0","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.3.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.3.0/manifests"},{"name":"providers-ydb/1.0.0","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ydb/1.0.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-ydb/1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.0.0/manifests"},{"name":"providers-pinecone/2.0.1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pinecone/2.0.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-pinecone/2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.0.1/manifests"},{"name":"providers-snowflake/5.5.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.5.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.5.2/manifests"},{"name":"providers-apache-drill/2.7.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-drill/2.7.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-drill/2.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.2/manifests"},{"name":"providers-sftp/4.10.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sftp/4.10.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-sftp/4.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.2/manifests"},{"name":"providers-vertica/3.8.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-vertica/3.8.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-vertica/3.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.8.2/manifests"},{"name":"providers-salesforce/5.7.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-salesforce/5.7.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-salesforce/5.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.7.2/manifests"},{"name":"providers-apache-hive/8.1.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hive/8.1.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hive/8.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.1.2/manifests"},{"name":"providers-papermill/3.7.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-papermill/3.7.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-papermill/3.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.7.2/manifests"},{"name":"providers-yandex/3.11.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-yandex/3.11.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-yandex/3.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.11.2/manifests"},{"name":"providers-docker/3.12.1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.12.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.1/manifests"},{"name":"providers-google/10.20.0","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.20.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.20.0/manifests"},{"name":"providers-openai/1.2.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openai/1.2.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-openai/1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.2.2/manifests"},{"name":"providers-amazon/8.25.0","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.25.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.25.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.25.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.25.0/manifests"},{"name":"providers-oracle/3.10.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-oracle/3.10.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-oracle/3.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.2/manifests"},{"name":"providers-opensearch/1.3.0","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opensearch/1.3.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-opensearch/1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.3.0/manifests"},{"name":"providers-ssh/3.11.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ssh/3.11.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-ssh/3.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.11.2/manifests"},{"name":"providers-ftp/3.10.0","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ftp/3.10.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-ftp/3.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.10.0/manifests"},{"name":"providers-facebook/3.5.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-facebook/3.5.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-facebook/3.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.5.2/manifests"},{"name":"providers-fab/1.2.0","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.2.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.2.0/manifests"},{"name":"providers-apache-hdfs/4.4.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hdfs/4.4.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hdfs/4.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.4.2/manifests"},{"name":"providers-exasol/4.5.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-exasol/4.5.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-exasol/4.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.2/manifests"},{"name":"providers-grpc/3.5.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-grpc/3.5.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-grpc/3.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.5.2/manifests"},{"name":"providers-weaviate/1.4.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/1.4.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.4.2/manifests"},{"name":"providers-apache-kylin/3.6.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kylin/3.6.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kylin/3.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.6.2/manifests"},{"name":"providers-cncf-kubernetes/8.3.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.3.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.2/manifests"},{"name":"providers-apache-spark/4.8.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-spark/4.8.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-spark/4.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.8.2/manifests"},{"name":"providers-microsoft-mssql/3.7.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-mssql/3.7.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-mssql/3.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.7.2/manifests"},{"name":"providers-cloudant/3.5.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cloudant/3.5.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-cloudant/3.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.5.2/manifests"},{"name":"providers-trino/5.7.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-trino/5.7.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-trino/5.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.7.2/manifests"},{"name":"providers-tableau/4.5.2","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-27T07:50:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tableau/4.5.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-tableau/4.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.5.2/manifests"},{"name":"providers-exasol/4.5.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:27.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-exasol/4.5.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-exasol/4.5.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.2rc1/manifests"},{"name":"providers-opensearch/1.3.0rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:27.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opensearch/1.3.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-opensearch/1.3.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.3.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.3.0rc1/manifests"},{"name":"providers-pinecone/2.0.1rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:27.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pinecone/2.0.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-pinecone/2.0.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.0.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.0.1rc1/manifests"},{"name":"providers-ftp/3.10.0rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:27.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ftp/3.10.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ftp/3.10.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.10.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.10.0rc1/manifests"},{"name":"providers-snowflake/5.5.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:27.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.5.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.5.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.5.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.5.2rc1/manifests"},{"name":"providers-databricks/6.6.0rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:27.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.6.0rc1/manifests"},{"name":"providers-apache-hive/8.1.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:27.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hive/8.1.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hive/8.1.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.1.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.1.2rc1/manifests"},{"name":"providers-cloudant/3.5.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cloudant/3.5.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cloudant/3.5.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.5.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.5.2rc1/manifests"},{"name":"providers-apache-drill/2.7.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-drill/2.7.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-drill/2.7.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.2rc1/manifests"},{"name":"providers-amazon/8.25.0rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.25.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.25.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.25.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.25.0rc1/manifests"},{"name":"providers-google/10.20.0rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.20.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.20.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.20.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.20.0rc1/manifests"},{"name":"providers-apache-flink/1.4.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-flink/1.4.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-flink/1.4.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.4.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.4.2rc1/manifests"},{"name":"providers-apache-kafka/1.5.0rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kafka/1.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kafka/1.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.5.0rc1/manifests"},{"name":"providers-apache-hdfs/4.4.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hdfs/4.4.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hdfs/4.4.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.4.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.4.2rc1/manifests"},{"name":"providers-apache-spark/4.8.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-spark/4.8.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-spark/4.8.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.8.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.8.2rc1/manifests"},{"name":"providers-common-sql/1.14.1rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.14.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.14.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.14.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.14.1rc1/manifests"},{"name":"providers-telegram/4.5.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-telegram/4.5.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-telegram/4.5.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.5.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.5.2rc1/manifests"},{"name":"providers-mysql/5.6.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mysql/5.6.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-mysql/5.6.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.2rc1/manifests"},{"name":"providers-http/4.12.0rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-http/4.12.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-http/4.12.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.12.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.12.0rc1/manifests"},{"name":"providers-odbc/4.6.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-odbc/4.6.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-odbc/4.6.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.2rc1/manifests"},{"name":"providers-grpc/3.5.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-grpc/3.5.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-grpc/3.5.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.5.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.5.2rc1/manifests"},{"name":"providers-postgres/5.11.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-postgres/5.11.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-postgres/5.11.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.2rc1/manifests"},{"name":"providers-github/2.6.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-github/2.6.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-github/2.6.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.6.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.6.2rc1/manifests"},{"name":"providers-teradata/2.3.0rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.3.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.3.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.3.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.3.0rc1/manifests"},{"name":"providers-yandex/3.11.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-yandex/3.11.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-yandex/3.11.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.11.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.11.2rc1/manifests"},{"name":"providers-weaviate/1.4.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/1.4.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/1.4.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.4.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.4.2rc1/manifests"},{"name":"providers-vertica/3.8.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-vertica/3.8.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-vertica/3.8.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.8.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.8.2rc1/manifests"},{"name":"providers-salesforce/5.7.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-salesforce/5.7.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-salesforce/5.7.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.7.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.7.2rc1/manifests"},{"name":"providers-ydb/1.0.0rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ydb/1.0.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ydb/1.0.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.0.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ydb%2F1.0.0rc1/manifests"},{"name":"providers-dbt-cloud/3.9.0rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dbt-cloud/3.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-dbt-cloud/3.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.9.0rc1/manifests"},{"name":"providers-mongo/4.1.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mongo/4.1.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-mongo/4.1.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.1.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.1.2rc1/manifests"},{"name":"providers-facebook/3.5.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-facebook/3.5.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-facebook/3.5.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.5.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.5.2rc1/manifests"},{"name":"providers-microsoft-azure/10.1.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.1.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.1.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.1.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.1.2rc1/manifests"},{"name":"providers-openlineage/1.9.0rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.9.0rc1/manifests"},{"name":"providers-openai/1.2.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openai/1.2.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openai/1.2.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.2.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.2.2rc1/manifests"},{"name":"providers-pagerduty/3.7.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pagerduty/3.7.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-pagerduty/3.7.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.7.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.7.2rc1/manifests"},{"name":"providers-oracle/3.10.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-oracle/3.10.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-oracle/3.10.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.2rc1/manifests"},{"name":"providers-presto/5.5.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-presto/5.5.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-presto/5.5.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.5.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.5.2rc1/manifests"},{"name":"providers-papermill/3.7.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-papermill/3.7.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-papermill/3.7.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.7.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.7.2rc1/manifests"},{"name":"providers-ssh/3.11.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ssh/3.11.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ssh/3.11.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.11.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.11.2rc1/manifests"},{"name":"providers-tableau/4.5.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tableau/4.5.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-tableau/4.5.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.5.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.5.2rc1/manifests"},{"name":"providers-sftp/4.10.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sftp/4.10.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sftp/4.10.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.2rc1/manifests"},{"name":"providers-docker/3.12.1rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.12.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.12.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.1rc1/manifests"},{"name":"providers-trino/5.7.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-trino/5.7.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-trino/5.7.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.7.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.7.2rc1/manifests"},{"name":"providers-microsoft-mssql/3.7.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-mssql/3.7.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-mssql/3.7.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.7.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.7.2rc1/manifests"},{"name":"providers-fab/1.2.0rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.2.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.2.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.2.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.2.0rc1/manifests"},{"name":"providers-cncf-kubernetes/8.3.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.3.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.3.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.2rc1/manifests"},{"name":"providers-common-compat/1.0.0rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-compat/1.0.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-compat/1.0.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-compat%2F1.0.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-compat%2F1.0.0rc1/manifests"},{"name":"providers-apache-kylin/3.6.2rc1","sha":"6e5ae26382b328e88907e8301d4b2352ef8524c5","kind":"tag","published_at":"2024-06-22T12:56:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kylin/3.6.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kylin/3.6.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.6.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.6.2rc1/manifests"},{"name":"helm-chart/1.14.0","sha":"8eebe2b4c8e1271d26a796ec599b43b46941125c","kind":"tag","published_at":"2024-06-19T00:13:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/helm-chart/1.14.0","html_url":"https://github.com/apache/airflow/releases/tag/helm-chart/1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.14.0/manifests"},{"name":"helm-chart/1.14.0rc1","sha":"8eebe2b4c8e1271d26a796ec599b43b46941125c","kind":"tag","published_at":"2024-06-14T20:39:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/helm-chart/1.14.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/helm-chart/1.14.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.14.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.14.0rc1/manifests"},{"name":"2.9.2","sha":"f56f13442613912725d307aafc537cc76277c2d1","kind":"tag","published_at":"2024-06-10T08:26:32.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.9.2","html_url":"https://github.com/apache/airflow/releases/tag/2.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.2/manifests"},{"name":"constraints-2.9.2","sha":"46dd6afa6ddb6ad5129432427ba6e6b512d06d7a","kind":"tag","published_at":"2024-06-10T08:25:29.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.9.2","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.2/manifests"},{"name":"providers-amazon/8.24.0","sha":"0c51bd6ab6ef265fafea898fdb1ec62ce76e5032","kind":"tag","published_at":"2024-06-09T09:58:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.24.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.24.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.24.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.24.0/manifests"},{"name":"providers-cncf-kubernetes/8.3.1","sha":"0c51bd6ab6ef265fafea898fdb1ec62ce76e5032","kind":"tag","published_at":"2024-06-09T09:58:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.3.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.1/manifests"},{"name":"providers-celery/3.7.2","sha":"0c51bd6ab6ef265fafea898fdb1ec62ce76e5032","kind":"tag","published_at":"2024-06-09T09:58:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.7.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.2/manifests"},{"name":"providers-cncf-kubernetes/8.3.1rc1","sha":"0c51bd6ab6ef265fafea898fdb1ec62ce76e5032","kind":"tag","published_at":"2024-06-07T09:25:42.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.3.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.3.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.1rc1/manifests"},{"name":"providers-celery/3.7.2rc1","sha":"0c51bd6ab6ef265fafea898fdb1ec62ce76e5032","kind":"tag","published_at":"2024-06-07T09:25:42.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.7.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.7.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.2rc1/manifests"},{"name":"providers-amazon/8.24.0rc2","sha":"0c51bd6ab6ef265fafea898fdb1ec62ce76e5032","kind":"tag","published_at":"2024-06-07T09:25:42.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.24.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.24.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.24.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.24.0rc2/manifests"},{"name":"constraints-2.9.2rc1","sha":"35da30ea33a53f6dec9328f47d86f8b53a1dbed4","kind":"tag","published_at":"2024-06-06T10:32:51.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.9.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.9.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.2rc1/manifests"},{"name":"2.9.2rc1","sha":"f56f13442613912725d307aafc537cc76277c2d1","kind":"tag","published_at":"2024-06-06T10:18:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.9.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/2.9.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.2rc1/manifests"},{"name":"providers-teradata/2.2.0","sha":"11f219abffb49ef713bac3e60121fcbf737dc95b","kind":"tag","published_at":"2024-06-03T05:43:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.2.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.2.0/manifests"},{"name":"providers-cncf-kubernetes/8.3.0","sha":"11f219abffb49ef713bac3e60121fcbf737dc95b","kind":"tag","published_at":"2024-06-03T05:43:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.3.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.0/manifests"},{"name":"providers-teradata/2.2.0rc1","sha":"11f219abffb49ef713bac3e60121fcbf737dc95b","kind":"tag","published_at":"2024-05-30T12:54:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.2.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.2.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.2.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.2.0rc1/manifests"},{"name":"providers-amazon/8.24.0rc1","sha":"11f219abffb49ef713bac3e60121fcbf737dc95b","kind":"tag","published_at":"2024-05-30T12:54:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.24.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.24.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.24.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.24.0rc1/manifests"},{"name":"providers-cncf-kubernetes/8.3.0rc2","sha":"11f219abffb49ef713bac3e60121fcbf737dc95b","kind":"tag","published_at":"2024-05-30T12:54:58.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.3.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.3.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.0rc2/manifests"},{"name":"providers-arangodb/2.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-arangodb/2.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-arangodb/2.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-arangodb%2F2.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-arangodb%2F2.5.1/manifests"},{"name":"providers-docker/3.12.0","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.12.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.0/manifests"},{"name":"providers-dingding/3.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dingding/3.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-dingding/3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dingding%2F3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dingding%2F3.5.1/manifests"},{"name":"providers-elasticsearch/5.4.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-elasticsearch/5.4.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-elasticsearch/5.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.4.1/manifests"},{"name":"providers-apache-kafka/1.4.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kafka/1.4.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kafka/1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.4.1/manifests"},{"name":"providers-apache-beam/5.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-beam/5.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-beam/5.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.7.1/manifests"},{"name":"providers-apache-druid/3.10.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-druid/3.10.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-druid/3.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.10.1/manifests"},{"name":"providers-mysql/5.6.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mysql/5.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-mysql/5.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.1/manifests"},{"name":"providers-singularity/3.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-singularity/3.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-singularity/3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-singularity%2F3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-singularity%2F3.5.1/manifests"},{"name":"providers-tableau/4.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tableau/4.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-tableau/4.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.5.1/manifests"},{"name":"providers-segment/3.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-segment/3.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-segment/3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-segment%2F3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-segment%2F3.5.1/manifests"},{"name":"providers-snowflake/5.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.5.1/manifests"},{"name":"providers-imap/3.6.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-imap/3.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-imap/3.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-imap%2F3.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-imap%2F3.6.1/manifests"},{"name":"providers-microsoft-azure/10.1.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.1.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.1.1/manifests"},{"name":"providers-opsgenie/5.6.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opsgenie/5.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-opsgenie/5.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opsgenie%2F5.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opsgenie%2F5.6.1/manifests"},{"name":"providers-pinecone/2.0.0","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pinecone/2.0.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-pinecone/2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.0.0/manifests"},{"name":"providers-redis/3.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-redis/3.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-redis/3.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.7.1/manifests"},{"name":"providers-atlassian-jira/2.6.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-atlassian-jira/2.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-atlassian-jira/2.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-atlassian-jira%2F2.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-atlassian-jira%2F2.6.1/manifests"},{"name":"providers-asana/2.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-asana/2.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-asana/2.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-asana%2F2.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-asana%2F2.5.1/manifests"},{"name":"providers-celery/3.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.1/manifests"},{"name":"providers-common-io/1.3.2","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-io/1.3.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-io/1.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-io%2F1.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-io%2F1.3.2/manifests"},{"name":"providers-cloudant/3.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cloudant/3.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cloudant/3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.5.1/manifests"},{"name":"providers-dbt-cloud/3.8.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dbt-cloud/3.8.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-dbt-cloud/3.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.8.1/manifests"},{"name":"providers-common-sql/1.14.0","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.14.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.14.0/manifests"},{"name":"providers-apache-spark/4.8.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-spark/4.8.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-spark/4.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.8.1/manifests"},{"name":"providers-databricks/6.5.0","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.5.0/manifests"},{"name":"providers-discord/3.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-discord/3.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-discord/3.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-discord%2F3.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-discord%2F3.7.1/manifests"},{"name":"providers-ftp/3.9.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ftp/3.9.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ftp/3.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.9.1/manifests"},{"name":"providers-fab/1.1.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.1.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.1.1/manifests"},{"name":"providers-datadog/3.6.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-datadog/3.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-datadog/3.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-datadog%2F3.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-datadog%2F3.6.1/manifests"},{"name":"providers-github/2.6.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-github/2.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-github/2.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.6.1/manifests"},{"name":"providers-exasol/4.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-exasol/4.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-exasol/4.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.1/manifests"},{"name":"providers-apache-drill/2.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-drill/2.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-drill/2.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.1/manifests"},{"name":"providers-apache-pig/4.4.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pig/4.4.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pig/4.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pig%2F4.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pig%2F4.4.1/manifests"},{"name":"providers-apache-livy/3.8.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-livy/3.8.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-livy/3.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.8.1/manifests"},{"name":"providers-apache-impala/1.4.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-impala/1.4.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-impala/1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.4.1/manifests"},{"name":"providers-apache-kylin/3.6.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kylin/3.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kylin/3.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.6.1/manifests"},{"name":"providers-apprise/1.3.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apprise/1.3.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apprise/1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.3.1/manifests"},{"name":"providers-apache-hdfs/4.4.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hdfs/4.4.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hdfs/4.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.4.1/manifests"},{"name":"providers-facebook/3.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-facebook/3.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-facebook/3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.5.1/manifests"},{"name":"providers-airbyte/3.8.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-airbyte/3.8.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-airbyte/3.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.8.1/manifests"},{"name":"providers-apache-hive/8.1.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hive/8.1.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hive/8.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.1.1/manifests"},{"name":"providers-apache-cassandra/3.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-cassandra/3.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-cassandra/3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.5.1/manifests"},{"name":"providers-alibaba/2.8.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-alibaba/2.8.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-alibaba/2.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.8.1/manifests"},{"name":"providers-amazon/8.23.0","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.23.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.23.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.23.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.23.0/manifests"},{"name":"providers-apache-flink/1.4.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-flink/1.4.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-flink/1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.4.1/manifests"},{"name":"providers-google/10.19.0","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.19.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.19.0/manifests"},{"name":"providers-smtp/1.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-smtp/1.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-smtp/1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.7.1/manifests"},{"name":"providers-slack/8.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-slack/8.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-slack/8.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.7.1/manifests"},{"name":"providers-telegram/4.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-telegram/4.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-telegram/4.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.5.1/manifests"},{"name":"providers-teradata/2.1.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.1.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.1.1/manifests"},{"name":"providers-ssh/3.11.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ssh/3.11.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ssh/3.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.11.1/manifests"},{"name":"providers-vertica/3.8.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-vertica/3.8.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-vertica/3.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.8.1/manifests"},{"name":"providers-grpc/3.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-grpc/3.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-grpc/3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.5.1/manifests"},{"name":"providers-zendesk/4.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-zendesk/4.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-zendesk/4.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-zendesk%2F4.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-zendesk%2F4.7.1/manifests"},{"name":"providers-yandex/3.11.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-yandex/3.11.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-yandex/3.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.11.1/manifests"},{"name":"providers-influxdb/2.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-influxdb/2.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-influxdb/2.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.5.1/manifests"},{"name":"providers-jdbc/4.3.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jdbc/4.3.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-jdbc/4.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.3.1/manifests"},{"name":"providers-microsoft-mssql/3.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-mssql/3.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-mssql/3.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.7.1/manifests"},{"name":"providers-jenkins/3.6.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jenkins/3.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-jenkins/3.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jenkins%2F3.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jenkins%2F3.6.1/manifests"},{"name":"providers-hashicorp/3.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-hashicorp/3.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-hashicorp/3.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.7.1/manifests"},{"name":"providers-mongo/4.1.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mongo/4.1.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-mongo/4.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.1.1/manifests"},{"name":"providers-microsoft-winrm/3.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-winrm/3.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-winrm/3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-winrm%2F3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-winrm%2F3.5.1/manifests"},{"name":"providers-neo4j/3.6.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-neo4j/3.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-neo4j/3.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-neo4j%2F3.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-neo4j%2F3.6.1/manifests"},{"name":"providers-odbc/4.6.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-odbc/4.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-odbc/4.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.1/manifests"},{"name":"providers-openai/1.2.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openai/1.2.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openai/1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.2.1/manifests"},{"name":"providers-microsoft-psrp/2.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-psrp/2.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-psrp/2.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.7.1/manifests"},{"name":"providers-oracle/3.10.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-oracle/3.10.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-oracle/3.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.1/manifests"},{"name":"providers-pagerduty/3.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pagerduty/3.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-pagerduty/3.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.7.1/manifests"},{"name":"providers-opensearch/1.2.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opensearch/1.2.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-opensearch/1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.2.1/manifests"},{"name":"providers-openlineage/1.8.0","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.8.0/manifests"},{"name":"providers-openfaas/3.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openfaas/3.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openfaas/3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openfaas%2F3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openfaas%2F3.5.1/manifests"},{"name":"providers-qdrant/1.1.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-qdrant/1.1.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-qdrant/1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.1.1/manifests"},{"name":"providers-presto/5.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-presto/5.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-presto/5.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.5.1/manifests"},{"name":"providers-salesforce/5.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-salesforce/5.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-salesforce/5.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.7.1/manifests"},{"name":"providers-postgres/5.11.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-postgres/5.11.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-postgres/5.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.1/manifests"},{"name":"providers-samba/4.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:15.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-samba/4.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-samba/4.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.7.1/manifests"},{"name":"providers-cohere/1.2.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:14.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cohere/1.2.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cohere/1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.2.1/manifests"},{"name":"providers-apache-pinot/4.4.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:14.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pinot/4.4.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pinot/4.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.4.1/manifests"},{"name":"providers-sftp/4.10.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:14.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sftp/4.10.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sftp/4.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.1/manifests"},{"name":"providers-sendgrid/3.5.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:14.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sendgrid/3.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sendgrid/3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sendgrid%2F3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sendgrid%2F3.5.1/manifests"},{"name":"providers-weaviate/1.4.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:14.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/1.4.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.4.1/manifests"},{"name":"providers-sqlite/3.8.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:14.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sqlite/3.8.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sqlite/3.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.8.1/manifests"},{"name":"providers-trino/5.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:14.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-trino/5.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-trino/5.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.7.1/manifests"},{"name":"providers-http/4.11.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:14.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-http/4.11.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-http/4.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.11.1/manifests"},{"name":"providers-pgvector/1.2.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:14.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pgvector/1.2.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-pgvector/1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.2.1/manifests"},{"name":"providers-papermill/3.7.1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-30T06:38:14.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-papermill/3.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-papermill/3.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.7.1/manifests"},{"name":"providers-jenkins/3.6.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jenkins/3.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-jenkins/3.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jenkins%2F3.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jenkins%2F3.6.1rc1/manifests"},{"name":"providers-microsoft-azure/10.1.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.1.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.1.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.1.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.1.1rc1/manifests"},{"name":"providers-segment/3.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-segment/3.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-segment/3.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-segment%2F3.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-segment%2F3.5.1rc1/manifests"},{"name":"providers-neo4j/3.6.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-neo4j/3.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-neo4j/3.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-neo4j%2F3.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-neo4j%2F3.6.1rc1/manifests"},{"name":"providers-odbc/4.6.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-odbc/4.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-odbc/4.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.1rc1/manifests"},{"name":"providers-openfaas/3.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openfaas/3.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openfaas/3.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openfaas%2F3.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openfaas%2F3.5.1rc1/manifests"},{"name":"providers-microsoft-mssql/3.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-mssql/3.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-mssql/3.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.7.1rc1/manifests"},{"name":"providers-openai/1.2.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openai/1.2.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openai/1.2.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.2.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.2.1rc1/manifests"},{"name":"providers-pagerduty/3.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pagerduty/3.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-pagerduty/3.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.7.1rc1/manifests"},{"name":"providers-opensearch/1.2.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opensearch/1.2.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-opensearch/1.2.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.2.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.2.1rc1/manifests"},{"name":"providers-opsgenie/5.6.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opsgenie/5.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-opsgenie/5.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opsgenie%2F5.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opsgenie%2F5.6.1rc1/manifests"},{"name":"providers-yandex/3.11.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-yandex/3.11.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-yandex/3.11.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.11.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.11.1rc1/manifests"},{"name":"providers-qdrant/1.1.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-qdrant/1.1.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-qdrant/1.1.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.1.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.1.1rc1/manifests"},{"name":"providers-trino/5.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-trino/5.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-trino/5.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.7.1rc1/manifests"},{"name":"providers-papermill/3.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-papermill/3.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-papermill/3.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.7.1rc1/manifests"},{"name":"providers-slack/8.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-slack/8.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-slack/8.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.7.1rc1/manifests"},{"name":"providers-snowflake/5.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.5.1rc1/manifests"},{"name":"providers-redis/3.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-redis/3.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-redis/3.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.7.1rc1/manifests"},{"name":"providers-telegram/4.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-telegram/4.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-telegram/4.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.5.1rc1/manifests"},{"name":"providers-asana/2.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-asana/2.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-asana/2.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-asana%2F2.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-asana%2F2.5.1rc1/manifests"},{"name":"providers-atlassian-jira/2.6.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-atlassian-jira/2.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-atlassian-jira/2.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-atlassian-jira%2F2.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-atlassian-jira%2F2.6.1rc1/manifests"},{"name":"providers-cncf-kubernetes/8.3.0rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.3.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.3.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.3.0rc1/manifests"},{"name":"providers-cloudant/3.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cloudant/3.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cloudant/3.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.5.1rc1/manifests"},{"name":"providers-apache-spark/4.8.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-spark/4.8.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-spark/4.8.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.8.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.8.1rc1/manifests"},{"name":"providers-datadog/3.6.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-datadog/3.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-datadog/3.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-datadog%2F3.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-datadog%2F3.6.1rc1/manifests"},{"name":"providers-tableau/4.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tableau/4.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-tableau/4.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.5.1rc1/manifests"},{"name":"providers-dbt-cloud/3.8.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dbt-cloud/3.8.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-dbt-cloud/3.8.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.8.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.8.1rc1/manifests"},{"name":"providers-fab/1.1.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.1.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.1.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.1.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.1.1rc1/manifests"},{"name":"providers-exasol/4.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-exasol/4.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-exasol/4.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.1rc1/manifests"},{"name":"providers-pgvector/1.2.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pgvector/1.2.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-pgvector/1.2.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.2.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.2.1rc1/manifests"},{"name":"providers-elasticsearch/5.4.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-elasticsearch/5.4.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-elasticsearch/5.4.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.4.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.4.1rc1/manifests"},{"name":"providers-salesforce/5.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-salesforce/5.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-salesforce/5.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.7.1rc1/manifests"},{"name":"providers-sftp/4.10.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sftp/4.10.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sftp/4.10.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.1rc1/manifests"},{"name":"providers-discord/3.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-discord/3.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-discord/3.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-discord%2F3.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-discord%2F3.7.1rc1/manifests"},{"name":"providers-imap/3.6.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-imap/3.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-imap/3.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-imap%2F3.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-imap%2F3.6.1rc1/manifests"},{"name":"providers-http/4.11.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-http/4.11.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-http/4.11.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.11.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.11.1rc1/manifests"},{"name":"providers-influxdb/2.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-influxdb/2.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-influxdb/2.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.5.1rc1/manifests"},{"name":"providers-hashicorp/3.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-hashicorp/3.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-hashicorp/3.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.7.1rc1/manifests"},{"name":"providers-ssh/3.11.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ssh/3.11.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ssh/3.11.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.11.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.11.1rc1/manifests"},{"name":"providers-pinecone/2.0.0rc3","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pinecone/2.0.0rc3","html_url":"https://github.com/apache/airflow/releases/tag/providers-pinecone/2.0.0rc3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.0.0rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.0.0rc3/manifests"},{"name":"providers-grpc/3.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-grpc/3.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-grpc/3.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.5.1rc1/manifests"},{"name":"providers-airbyte/3.8.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-airbyte/3.8.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-airbyte/3.8.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.8.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.8.1rc1/manifests"},{"name":"providers-apache-livy/3.8.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-livy/3.8.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-livy/3.8.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.8.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.8.1rc1/manifests"},{"name":"providers-apache-kylin/3.6.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kylin/3.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kylin/3.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.6.1rc1/manifests"},{"name":"providers-apache-pinot/4.4.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pinot/4.4.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pinot/4.4.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.4.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.4.1rc1/manifests"},{"name":"providers-apache-impala/1.4.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-impala/1.4.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-impala/1.4.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.4.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.4.1rc1/manifests"},{"name":"providers-dingding/3.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dingding/3.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-dingding/3.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dingding%2F3.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dingding%2F3.5.1rc1/manifests"},{"name":"providers-apache-hdfs/4.4.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hdfs/4.4.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hdfs/4.4.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.4.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.4.1rc1/manifests"},{"name":"providers-apache-flink/1.4.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-flink/1.4.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-flink/1.4.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.4.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.4.1rc1/manifests"},{"name":"providers-apache-hive/8.1.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hive/8.1.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hive/8.1.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.1.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.1.1rc1/manifests"},{"name":"providers-alibaba/2.8.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-alibaba/2.8.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-alibaba/2.8.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.8.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.8.1rc1/manifests"},{"name":"providers-apache-cassandra/3.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-cassandra/3.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-cassandra/3.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.5.1rc1/manifests"},{"name":"providers-apache-druid/3.10.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-druid/3.10.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-druid/3.10.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.10.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.10.1rc1/manifests"},{"name":"providers-apache-pig/4.4.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pig/4.4.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pig/4.4.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pig%2F4.4.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pig%2F4.4.1rc1/manifests"},{"name":"providers-jdbc/4.3.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jdbc/4.3.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-jdbc/4.3.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.3.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.3.1rc1/manifests"},{"name":"providers-mysql/5.6.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mysql/5.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-mysql/5.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.1rc1/manifests"},{"name":"providers-microsoft-winrm/3.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-winrm/3.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-winrm/3.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-winrm%2F3.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-winrm%2F3.5.1rc1/manifests"},{"name":"providers-mongo/4.1.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mongo/4.1.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-mongo/4.1.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.1.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.1.1rc1/manifests"},{"name":"providers-microsoft-psrp/2.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-psrp/2.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-psrp/2.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.7.1rc1/manifests"},{"name":"providers-openlineage/1.8.0rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.8.0rc1/manifests"},{"name":"providers-oracle/3.10.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-oracle/3.10.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-oracle/3.10.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.1rc1/manifests"},{"name":"providers-teradata/2.1.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.1.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.1.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.1.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.1.1rc1/manifests"},{"name":"providers-postgres/5.11.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-postgres/5.11.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-postgres/5.11.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.1rc1/manifests"},{"name":"providers-sendgrid/3.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sendgrid/3.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sendgrid/3.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sendgrid%2F3.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sendgrid%2F3.5.1rc1/manifests"},{"name":"providers-sqlite/3.8.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sqlite/3.8.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sqlite/3.8.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.8.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.8.1rc1/manifests"},{"name":"providers-singularity/3.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-singularity/3.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-singularity/3.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-singularity%2F3.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-singularity%2F3.5.1rc1/manifests"},{"name":"providers-weaviate/1.4.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/1.4.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/1.4.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.4.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.4.1rc1/manifests"},{"name":"providers-vertica/3.8.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-vertica/3.8.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-vertica/3.8.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.8.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.8.1rc1/manifests"},{"name":"providers-smtp/1.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-smtp/1.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-smtp/1.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.7.1rc1/manifests"},{"name":"providers-zendesk/4.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-zendesk/4.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-zendesk/4.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-zendesk%2F4.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-zendesk%2F4.7.1rc1/manifests"},{"name":"providers-presto/5.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-presto/5.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-presto/5.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.5.1rc1/manifests"},{"name":"providers-arangodb/2.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-arangodb/2.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-arangodb/2.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-arangodb%2F2.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-arangodb%2F2.5.1rc1/manifests"},{"name":"providers-celery/3.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.1rc1/manifests"},{"name":"providers-samba/4.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-samba/4.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-samba/4.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.7.1rc1/manifests"},{"name":"providers-databricks/6.5.0rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.5.0rc1/manifests"},{"name":"providers-common-sql/1.14.0rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.14.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.14.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.14.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.14.0rc1/manifests"},{"name":"providers-common-io/1.3.2rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-io/1.3.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-io/1.3.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-io%2F1.3.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-io%2F1.3.2rc1/manifests"},{"name":"providers-cohere/1.2.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cohere/1.2.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cohere/1.2.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.2.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.2.1rc1/manifests"},{"name":"providers-apprise/1.3.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apprise/1.3.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apprise/1.3.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.3.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.3.1rc1/manifests"},{"name":"providers-facebook/3.5.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-facebook/3.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-facebook/3.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.5.1rc1/manifests"},{"name":"providers-google/10.19.0rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.19.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.19.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.19.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.19.0rc1/manifests"},{"name":"providers-docker/3.12.0rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.12.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.12.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.12.0rc1/manifests"},{"name":"providers-github/2.6.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-github/2.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-github/2.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.6.1rc1/manifests"},{"name":"providers-ftp/3.9.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ftp/3.9.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ftp/3.9.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.9.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.9.1rc1/manifests"},{"name":"providers-apache-drill/2.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-drill/2.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-drill/2.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.1rc1/manifests"},{"name":"providers-apache-kafka/1.4.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kafka/1.4.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kafka/1.4.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.4.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.4.1rc1/manifests"},{"name":"providers-apache-beam/5.7.1rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-beam/5.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-beam/5.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.7.1rc1/manifests"},{"name":"providers-amazon/8.23.0rc1","sha":"34500f3a2fa4652272bc831e3c18fd2a6a2da5ef","kind":"tag","published_at":"2024-05-26T08:38:35.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.23.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.23.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.23.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.23.0rc1/manifests"},{"name":"providers-amazon/8.22.0","sha":"97e867f1701fae287a20dff7e0f9e9ecbdc38f27","kind":"tag","published_at":"2024-05-17T16:07:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.22.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.22.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.22.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.22.0/manifests"},{"name":"providers-google/10.18.0","sha":"97e867f1701fae287a20dff7e0f9e9ecbdc38f27","kind":"tag","published_at":"2024-05-17T16:07:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.18.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.18.0/manifests"},{"name":"providers-apache-iceberg/1.0.0","sha":"97e867f1701fae287a20dff7e0f9e9ecbdc38f27","kind":"tag","published_at":"2024-05-17T16:07:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-iceberg/1.0.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-iceberg/1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-iceberg%2F1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-iceberg%2F1.0.0/manifests"},{"name":"providers-microsoft-azure/10.1.0","sha":"97e867f1701fae287a20dff7e0f9e9ecbdc38f27","kind":"tag","published_at":"2024-05-17T16:07:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.1.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.1.0/manifests"},{"name":"providers-tabular/1.5.1","sha":"97e867f1701fae287a20dff7e0f9e9ecbdc38f27","kind":"tag","published_at":"2024-05-17T16:07:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tabular/1.5.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-tabular/1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tabular%2F1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tabular%2F1.5.1/manifests"},{"name":"providers-tabular/1.5.1rc1","sha":"97e867f1701fae287a20dff7e0f9e9ecbdc38f27","kind":"tag","published_at":"2024-05-12T19:03:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tabular/1.5.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-tabular/1.5.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tabular%2F1.5.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tabular%2F1.5.1rc1/manifests"},{"name":"providers-pinecone/2.0.0rc2","sha":"97e867f1701fae287a20dff7e0f9e9ecbdc38f27","kind":"tag","published_at":"2024-05-12T19:03:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pinecone/2.0.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-pinecone/2.0.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.0.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.0.0rc2/manifests"},{"name":"providers-microsoft-azure/10.1.0rc2","sha":"97e867f1701fae287a20dff7e0f9e9ecbdc38f27","kind":"tag","published_at":"2024-05-12T19:03:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.1.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.1.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.1.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.1.0rc2/manifests"},{"name":"providers-google/10.18.0rc2","sha":"97e867f1701fae287a20dff7e0f9e9ecbdc38f27","kind":"tag","published_at":"2024-05-12T19:03:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.18.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.18.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.18.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.18.0rc2/manifests"},{"name":"providers-apache-iceberg/1.0.0rc1","sha":"97e867f1701fae287a20dff7e0f9e9ecbdc38f27","kind":"tag","published_at":"2024-05-12T19:03:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-iceberg/1.0.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-iceberg/1.0.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-iceberg%2F1.0.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-iceberg%2F1.0.0rc1/manifests"},{"name":"providers-amazon/8.22.0rc1","sha":"97e867f1701fae287a20dff7e0f9e9ecbdc38f27","kind":"tag","published_at":"2024-05-12T19:03:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.22.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.22.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.22.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.22.0rc1/manifests"},{"name":"providers-zendesk/4.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-zendesk/4.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-zendesk/4.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-zendesk%2F4.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-zendesk%2F4.7.0/manifests"},{"name":"providers-apache-pig/4.4.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pig/4.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pig/4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pig%2F4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pig%2F4.4.0/manifests"},{"name":"providers-cloudant/3.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cloudant/3.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-cloudant/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.5.0/manifests"},{"name":"providers-microsoft-winrm/3.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-winrm/3.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-winrm/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-winrm%2F3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-winrm%2F3.5.0/manifests"},{"name":"providers-dbt-cloud/3.8.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dbt-cloud/3.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-dbt-cloud/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.8.0/manifests"},{"name":"providers-docker/3.11.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.11.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.11.0/manifests"},{"name":"providers-datadog/3.6.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-datadog/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-datadog/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-datadog%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-datadog%2F3.6.0/manifests"},{"name":"providers-microsoft-mssql/3.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-mssql/3.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-mssql/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.7.0/manifests"},{"name":"providers-jenkins/3.6.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jenkins/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-jenkins/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jenkins%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jenkins%2F3.6.0/manifests"},{"name":"providers-neo4j/3.6.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-neo4j/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-neo4j/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-neo4j%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-neo4j%2F3.6.0/manifests"},{"name":"providers-opensearch/1.2.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opensearch/1.2.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-opensearch/1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.2.0/manifests"},{"name":"providers-pagerduty/3.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pagerduty/3.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-pagerduty/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.7.0/manifests"},{"name":"providers-presto/5.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-presto/5.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-presto/5.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.5.0/manifests"},{"name":"providers-postgres/5.11.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-postgres/5.11.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-postgres/5.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.0/manifests"},{"name":"providers-ssh/3.11.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ssh/3.11.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-ssh/3.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.11.0/manifests"},{"name":"providers-telegram/4.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-telegram/4.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-telegram/4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.5.0/manifests"},{"name":"providers-vertica/3.8.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-vertica/3.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-vertica/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.8.0/manifests"},{"name":"providers-weaviate/1.4.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/1.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.4.0/manifests"},{"name":"providers-trino/5.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-trino/5.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-trino/5.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.7.0/manifests"},{"name":"providers-yandex/3.11.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-yandex/3.11.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-yandex/3.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.11.0/manifests"},{"name":"providers-teradata/2.1.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.1.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.1.0/manifests"},{"name":"providers-snowflake/5.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.5.0/manifests"},{"name":"providers-tableau/4.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tableau/4.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-tableau/4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.5.0/manifests"},{"name":"providers-tabular/1.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tabular/1.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-tabular/1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tabular%2F1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tabular%2F1.5.0/manifests"},{"name":"providers-sendgrid/3.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sendgrid/3.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-sendgrid/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sendgrid%2F3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sendgrid%2F3.5.0/manifests"},{"name":"providers-singularity/3.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-singularity/3.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-singularity/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-singularity%2F3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-singularity%2F3.5.0/manifests"},{"name":"providers-apprise/1.3.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apprise/1.3.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apprise/1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.3.0/manifests"},{"name":"providers-sqlite/3.8.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sqlite/3.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-sqlite/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.8.0/manifests"},{"name":"providers-slack/8.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-slack/8.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-slack/8.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.7.0/manifests"},{"name":"providers-jdbc/4.3.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jdbc/4.3.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-jdbc/4.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.3.0/manifests"},{"name":"providers-apache-druid/3.10.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-druid/3.10.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-druid/3.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.10.0/manifests"},{"name":"providers-amazon/8.21.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.21.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.21.0/manifests"},{"name":"providers-sftp/4.10.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sftp/4.10.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-sftp/4.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.0/manifests"},{"name":"providers-apache-kafka/1.4.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kafka/1.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kafka/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.4.0/manifests"},{"name":"providers-grpc/3.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-grpc/3.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-grpc/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.5.0/manifests"},{"name":"providers-apache-drill/2.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-drill/2.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-drill/2.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.0/manifests"},{"name":"providers-apache-cassandra/3.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-cassandra/3.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-cassandra/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.5.0/manifests"},{"name":"providers-apache-beam/5.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-beam/5.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-beam/5.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.7.0/manifests"},{"name":"providers-alibaba/2.8.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-alibaba/2.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-alibaba/2.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.8.0/manifests"},{"name":"providers-airbyte/3.8.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-airbyte/3.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-airbyte/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.8.0/manifests"},{"name":"providers-apache-impala/1.4.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-impala/1.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-impala/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.4.0/manifests"},{"name":"providers-apache-hdfs/4.4.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hdfs/4.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hdfs/4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.4.0/manifests"},{"name":"providers-apache-hive/8.1.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hive/8.1.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hive/8.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.1.0/manifests"},{"name":"providers-apache-pinot/4.4.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pinot/4.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pinot/4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.4.0/manifests"},{"name":"providers-apache-spark/4.8.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-spark/4.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-spark/4.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.8.0/manifests"},{"name":"providers-common-sql/1.13.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.13.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.13.0/manifests"},{"name":"providers-apache-kylin/3.6.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kylin/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kylin/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.6.0/manifests"},{"name":"providers-apache-flink/1.4.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-flink/1.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-flink/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.4.0/manifests"},{"name":"providers-cncf-kubernetes/8.2.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.2.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.2.0/manifests"},{"name":"providers-cohere/1.2.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cohere/1.2.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-cohere/1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.2.0/manifests"},{"name":"providers-celery/3.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.0/manifests"},{"name":"providers-atlassian-jira/2.6.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-atlassian-jira/2.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-atlassian-jira/2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-atlassian-jira%2F2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-atlassian-jira%2F2.6.0/manifests"},{"name":"providers-asana/2.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-asana/2.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-asana/2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-asana%2F2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-asana%2F2.5.0/manifests"},{"name":"providers-arangodb/2.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-arangodb/2.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-arangodb/2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-arangodb%2F2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-arangodb%2F2.5.0/manifests"},{"name":"providers-elasticsearch/5.4.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-elasticsearch/5.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-elasticsearch/5.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.4.0/manifests"},{"name":"providers-facebook/3.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-facebook/3.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-facebook/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.5.0/manifests"},{"name":"providers-fab/1.1.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.1.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.1.0/manifests"},{"name":"providers-exasol/4.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-exasol/4.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-exasol/4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.0/manifests"},{"name":"providers-dingding/3.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dingding/3.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-dingding/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dingding%2F3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dingding%2F3.5.0/manifests"},{"name":"providers-hashicorp/3.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-hashicorp/3.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-hashicorp/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.7.0/manifests"},{"name":"providers-github/2.6.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-github/2.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-github/2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.6.0/manifests"},{"name":"providers-http/4.11.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-http/4.11.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-http/4.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.11.0/manifests"},{"name":"providers-influxdb/2.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-influxdb/2.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-influxdb/2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.5.0/manifests"},{"name":"providers-ftp/3.9.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ftp/3.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-ftp/3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.9.0/manifests"},{"name":"providers-imap/3.6.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-imap/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-imap/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-imap%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-imap%2F3.6.0/manifests"},{"name":"providers-microsoft-psrp/2.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-psrp/2.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-psrp/2.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.7.0/manifests"},{"name":"providers-databricks/6.4.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.4.0/manifests"},{"name":"providers-mysql/5.6.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mysql/5.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-mysql/5.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.0/manifests"},{"name":"providers-mongo/4.1.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mongo/4.1.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-mongo/4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.1.0/manifests"},{"name":"providers-openlineage/1.7.1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.7.1/manifests"},{"name":"providers-openfaas/3.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openfaas/3.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-openfaas/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openfaas%2F3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openfaas%2F3.5.0/manifests"},{"name":"providers-oracle/3.10.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-oracle/3.10.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-oracle/3.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.0/manifests"},{"name":"providers-opsgenie/5.6.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opsgenie/5.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-opsgenie/5.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opsgenie%2F5.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opsgenie%2F5.6.0/manifests"},{"name":"providers-papermill/3.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-papermill/3.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-papermill/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.7.0/manifests"},{"name":"providers-pgvector/1.2.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pgvector/1.2.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-pgvector/1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.2.0/manifests"},{"name":"providers-redis/3.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-redis/3.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-redis/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.7.0/manifests"},{"name":"providers-qdrant/1.1.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-qdrant/1.1.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-qdrant/1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.1.0/manifests"},{"name":"providers-openai/1.2.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openai/1.2.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-openai/1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.2.0/manifests"},{"name":"providers-samba/4.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-samba/4.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-samba/4.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.7.0/manifests"},{"name":"providers-segment/3.5.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-segment/3.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-segment/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-segment%2F3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-segment%2F3.5.0/manifests"},{"name":"providers-salesforce/5.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-salesforce/5.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-salesforce/5.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.7.0/manifests"},{"name":"providers-odbc/4.6.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-odbc/4.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-odbc/4.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.0/manifests"},{"name":"providers-smtp/1.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:19.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-smtp/1.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-smtp/1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.7.0/manifests"},{"name":"providers-apache-livy/3.8.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:19.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-livy/3.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-livy/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.8.0/manifests"},{"name":"providers-discord/3.7.0","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-06T08:35:19.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-discord/3.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-discord/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-discord%2F3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-discord%2F3.7.0/manifests"},{"name":"2.9.1","sha":"2d53c1089f78d8d1416f51af60e1e0354781c661","kind":"tag","published_at":"2024-05-06T07:05:53.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.9.1","html_url":"https://github.com/apache/airflow/releases/tag/2.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.1/manifests"},{"name":"constraints-2.9.1","sha":"b402267cea69527fb0c380e5f590cd812bf82b11","kind":"tag","published_at":"2024-05-06T07:04:48.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.9.1","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.1/manifests"},{"name":"python-client-2.9.0","sha":"e61cb8fa41f34bc5e3140a2c22b24dd110b4c421","kind":"tag","published_at":"2024-05-02T19:06:55.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/python-client-2.9.0","html_url":"https://github.com/apache/airflow/releases/tag/python-client-2.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.9.0/manifests"},{"name":"constraints-2.9.1rc2","sha":"b402267cea69527fb0c380e5f590cd812bf82b11","kind":"tag","published_at":"2024-05-02T19:02:20.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.9.1rc2","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.9.1rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.1rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.1rc2/manifests"},{"name":"2.9.1rc2","sha":"2d53c1089f78d8d1416f51af60e1e0354781c661","kind":"tag","published_at":"2024-05-02T18:57:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.9.1rc2","html_url":"https://github.com/apache/airflow/releases/tag/2.9.1rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.1rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.1rc2/manifests"},{"name":"providers-apache-impala/1.4.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-impala/1.4.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-impala/1.4.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.4.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-impala%2F1.4.0rc1/manifests"},{"name":"providers-apache-pig/4.4.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pig/4.4.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pig/4.4.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pig%2F4.4.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pig%2F4.4.0rc2/manifests"},{"name":"providers-apache-hive/8.1.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hive/8.1.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hive/8.1.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.1.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.1.0rc1/manifests"},{"name":"providers-discord/3.7.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-discord/3.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-discord/3.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-discord%2F3.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-discord%2F3.7.0rc1/manifests"},{"name":"providers-databricks/6.4.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.4.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.4.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.4.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.4.0rc1/manifests"},{"name":"providers-fab/1.1.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.1.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.1.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.1.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.1.0rc1/manifests"},{"name":"providers-exasol/4.5.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-exasol/4.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-exasol/4.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.5.0rc1/manifests"},{"name":"providers-trino/5.7.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-trino/5.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-trino/5.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.7.0rc1/manifests"},{"name":"providers-smtp/1.7.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-smtp/1.7.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-smtp/1.7.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.7.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.7.0rc2/manifests"},{"name":"providers-snowflake/5.5.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.5.0rc1/manifests"},{"name":"providers-pinecone/2.0.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pinecone/2.0.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-pinecone/2.0.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.0.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pinecone%2F2.0.0rc1/manifests"},{"name":"providers-sftp/4.10.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sftp/4.10.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sftp/4.10.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.10.0rc1/manifests"},{"name":"providers-papermill/3.7.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-papermill/3.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-papermill/3.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.7.0rc1/manifests"},{"name":"providers-zendesk/4.7.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-zendesk/4.7.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-zendesk/4.7.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-zendesk%2F4.7.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-zendesk%2F4.7.0rc2/manifests"},{"name":"providers-facebook/3.5.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-facebook/3.5.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-facebook/3.5.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.5.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-facebook%2F3.5.0rc2/manifests"},{"name":"providers-microsoft-winrm/3.5.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-winrm/3.5.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-winrm/3.5.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-winrm%2F3.5.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-winrm%2F3.5.0rc2/manifests"},{"name":"providers-common-sql/1.13.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.13.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.13.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.13.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.13.0rc1/manifests"},{"name":"providers-alibaba/2.8.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-alibaba/2.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-alibaba/2.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.8.0rc1/manifests"},{"name":"providers-apache-livy/3.8.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:10.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-livy/3.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-livy/3.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.8.0rc1/manifests"},{"name":"providers-sendgrid/3.5.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sendgrid/3.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sendgrid/3.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sendgrid%2F3.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sendgrid%2F3.5.0rc1/manifests"},{"name":"providers-amazon/8.21.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.21.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.21.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.21.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.21.0rc1/manifests"},{"name":"providers-airbyte/3.8.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-airbyte/3.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-airbyte/3.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.8.0rc1/manifests"},{"name":"providers-apache-beam/5.7.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-beam/5.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-beam/5.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.7.0rc1/manifests"},{"name":"providers-apache-drill/2.7.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-drill/2.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-drill/2.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-drill%2F2.7.0rc1/manifests"},{"name":"providers-apache-cassandra/3.5.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-cassandra/3.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-cassandra/3.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.5.0rc1/manifests"},{"name":"providers-apache-hdfs/4.4.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hdfs/4.4.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hdfs/4.4.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.4.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.4.0rc2/manifests"},{"name":"providers-apache-flink/1.4.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-flink/1.4.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-flink/1.4.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.4.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-flink%2F1.4.0rc1/manifests"},{"name":"providers-apache-druid/3.10.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-druid/3.10.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-druid/3.10.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.10.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.10.0rc1/manifests"},{"name":"providers-apache-kylin/3.6.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kylin/3.6.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kylin/3.6.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.6.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kylin%2F3.6.0rc2/manifests"},{"name":"providers-apache-kafka/1.4.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-kafka/1.4.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-kafka/1.4.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.4.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-kafka%2F1.4.0rc2/manifests"},{"name":"providers-singularity/3.5.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-singularity/3.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-singularity/3.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-singularity%2F3.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-singularity%2F3.5.0rc1/manifests"},{"name":"providers-atlassian-jira/2.6.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-atlassian-jira/2.6.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-atlassian-jira/2.6.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-atlassian-jira%2F2.6.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-atlassian-jira%2F2.6.0rc2/manifests"},{"name":"providers-cloudant/3.5.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cloudant/3.5.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-cloudant/3.5.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.5.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cloudant%2F3.5.0rc2/manifests"},{"name":"providers-asana/2.5.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-asana/2.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-asana/2.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-asana%2F2.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-asana%2F2.5.0rc1/manifests"},{"name":"providers-cohere/1.2.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cohere/1.2.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-cohere/1.2.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.2.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.2.0rc2/manifests"},{"name":"providers-arangodb/2.5.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-arangodb/2.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-arangodb/2.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-arangodb%2F2.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-arangodb%2F2.5.0rc1/manifests"},{"name":"providers-cncf-kubernetes/8.2.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.2.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.2.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.2.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.2.0rc1/manifests"},{"name":"providers-dbt-cloud/3.8.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dbt-cloud/3.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-dbt-cloud/3.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.8.0rc1/manifests"},{"name":"providers-datadog/3.6.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-datadog/3.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-datadog/3.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-datadog%2F3.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-datadog%2F3.6.0rc1/manifests"},{"name":"providers-elasticsearch/5.4.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-elasticsearch/5.4.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-elasticsearch/5.4.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.4.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.4.0rc2/manifests"},{"name":"providers-docker/3.11.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.11.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.11.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.11.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.11.0rc1/manifests"},{"name":"providers-apprise/1.3.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apprise/1.3.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apprise/1.3.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.3.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apprise%2F1.3.0rc2/manifests"},{"name":"providers-apache-spark/4.8.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-spark/4.8.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-spark/4.8.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.8.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.8.0rc2/manifests"},{"name":"providers-ssh/3.11.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ssh/3.11.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-ssh/3.11.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.11.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.11.0rc2/manifests"},{"name":"providers-apache-pinot/4.4.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pinot/4.4.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pinot/4.4.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.4.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.4.0rc2/manifests"},{"name":"providers-sqlite/3.8.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sqlite/3.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sqlite/3.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.8.0rc1/manifests"},{"name":"providers-teradata/2.1.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.1.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.1.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.1.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.1.0rc1/manifests"},{"name":"providers-telegram/4.5.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-telegram/4.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-telegram/4.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.5.0rc1/manifests"},{"name":"providers-tabular/1.5.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tabular/1.5.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-tabular/1.5.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tabular%2F1.5.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tabular%2F1.5.0rc2/manifests"},{"name":"providers-pgvector/1.2.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pgvector/1.2.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-pgvector/1.2.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.2.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pgvector%2F1.2.0rc1/manifests"},{"name":"providers-pagerduty/3.7.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pagerduty/3.7.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-pagerduty/3.7.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.7.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.7.0rc2/manifests"},{"name":"providers-qdrant/1.1.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-qdrant/1.1.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-qdrant/1.1.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.1.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.1.0rc1/manifests"},{"name":"providers-oracle/3.10.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-oracle/3.10.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-oracle/3.10.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.10.0rc1/manifests"},{"name":"providers-postgres/5.11.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-postgres/5.11.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-postgres/5.11.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.11.0rc1/manifests"},{"name":"providers-samba/4.7.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-samba/4.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-samba/4.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.7.0rc1/manifests"},{"name":"providers-salesforce/5.7.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-salesforce/5.7.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-salesforce/5.7.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.7.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.7.0rc2/manifests"},{"name":"providers-slack/8.7.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-slack/8.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-slack/8.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.7.0rc1/manifests"},{"name":"providers-redis/3.7.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-redis/3.7.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-redis/3.7.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.7.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.7.0rc2/manifests"},{"name":"providers-opsgenie/5.6.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opsgenie/5.6.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-opsgenie/5.6.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opsgenie%2F5.6.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opsgenie%2F5.6.0rc2/manifests"},{"name":"providers-github/2.6.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-github/2.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-github/2.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-github%2F2.6.0rc1/manifests"},{"name":"providers-http/4.11.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-http/4.11.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-http/4.11.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.11.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.11.0rc1/manifests"},{"name":"providers-hashicorp/3.7.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-hashicorp/3.7.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-hashicorp/3.7.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.7.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.7.0rc2/manifests"},{"name":"providers-influxdb/2.5.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-influxdb/2.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-influxdb/2.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.5.0rc1/manifests"},{"name":"providers-microsoft-azure/10.1.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.1.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.1.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.1.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.1.0rc1/manifests"},{"name":"providers-jenkins/3.6.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jenkins/3.6.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-jenkins/3.6.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jenkins%2F3.6.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jenkins%2F3.6.0rc2/manifests"},{"name":"providers-grpc/3.5.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-grpc/3.5.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-grpc/3.5.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.5.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-grpc%2F3.5.0rc2/manifests"},{"name":"providers-jdbc/4.3.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jdbc/4.3.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-jdbc/4.3.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.3.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.3.0rc1/manifests"},{"name":"providers-openfaas/3.5.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openfaas/3.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openfaas/3.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openfaas%2F3.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openfaas%2F3.5.0rc1/manifests"},{"name":"providers-openai/1.2.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openai/1.2.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openai/1.2.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.2.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openai%2F1.2.0rc1/manifests"},{"name":"providers-microsoft-psrp/2.7.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-psrp/2.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-psrp/2.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.7.0rc1/manifests"},{"name":"providers-imap/3.6.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-imap/3.6.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-imap/3.6.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-imap%2F3.6.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-imap%2F3.6.0rc2/manifests"},{"name":"providers-openlineage/1.7.1rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.7.1rc1/manifests"},{"name":"providers-opensearch/1.2.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opensearch/1.2.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-opensearch/1.2.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.2.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.2.0rc1/manifests"},{"name":"providers-microsoft-mssql/3.7.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-mssql/3.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-mssql/3.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.7.0rc1/manifests"},{"name":"providers-google/10.18.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.18.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.18.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.18.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.18.0rc1/manifests"},{"name":"providers-ftp/3.9.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ftp/3.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ftp/3.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.9.0rc1/manifests"},{"name":"providers-vertica/3.8.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-vertica/3.8.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-vertica/3.8.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.8.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.8.0rc1/manifests"},{"name":"providers-odbc/4.6.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-odbc/4.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-odbc/4.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.6.0rc1/manifests"},{"name":"providers-segment/3.5.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-segment/3.5.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-segment/3.5.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-segment%2F3.5.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-segment%2F3.5.0rc2/manifests"},{"name":"providers-yandex/3.11.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-yandex/3.11.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-yandex/3.11.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.11.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.11.0rc1/manifests"},{"name":"providers-weaviate/1.4.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/1.4.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/1.4.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.4.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.4.0rc1/manifests"},{"name":"providers-neo4j/3.6.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-neo4j/3.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-neo4j/3.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-neo4j%2F3.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-neo4j%2F3.6.0rc1/manifests"},{"name":"providers-dingding/3.5.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dingding/3.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-dingding/3.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dingding%2F3.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dingding%2F3.5.0rc1/manifests"},{"name":"providers-mongo/4.1.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mongo/4.1.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-mongo/4.1.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.1.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.1.0rc1/manifests"},{"name":"providers-tableau/4.5.0rc2","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:09.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tableau/4.5.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-tableau/4.5.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.5.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.5.0rc2/manifests"},{"name":"providers-celery/3.7.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.7.0rc1/manifests"},{"name":"providers-presto/5.5.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-presto/5.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-presto/5.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.5.0rc1/manifests"},{"name":"providers-mysql/5.6.0rc1","sha":"fe4605a10e26f1b8a180979ba5765d1cb7fb0111","kind":"tag","published_at":"2024-05-01T12:04:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mysql/5.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-mysql/5.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.6.0rc1/manifests"},{"name":"constraints-2.9.1rc1","sha":"2d9dc7f892d3438e9acf52a9c1d00cd237c7f1b1","kind":"tag","published_at":"2024-04-30T10:09:48.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.9.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.9.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.1rc1/manifests"},{"name":"2.9.1rc1","sha":"5356cb9f9b989ff48e1f963c19f088b80acb4c2c","kind":"tag","published_at":"2024-04-30T09:54:42.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.9.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/2.9.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.1rc1/manifests"},{"name":"python-client-2.9.0rc1","sha":"e61cb8fa41f34bc5e3140a2c22b24dd110b4c421","kind":"tag","published_at":"2024-04-22T21:31:06.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/python-client-2.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/python-client-2.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/python-client-2.9.0rc1/manifests"},{"name":"providers-databricks/6.3.0","sha":"13df6569d6cc131fbf096cedd46dc32b0a6cf6b2","kind":"tag","published_at":"2024-04-21T07:55:14.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.3.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.3.0/manifests"},{"name":"providers-cncf-kubernetes/8.1.1","sha":"13df6569d6cc131fbf096cedd46dc32b0a6cf6b2","kind":"tag","published_at":"2024-04-21T07:55:14.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.1.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.1.1/manifests"},{"name":"providers-fab/1.0.4","sha":"13df6569d6cc131fbf096cedd46dc32b0a6cf6b2","kind":"tag","published_at":"2024-04-21T07:55:14.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.0.4","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.0.4/manifests"},{"name":"providers-fab/1.0.4rc1","sha":"13df6569d6cc131fbf096cedd46dc32b0a6cf6b2","kind":"tag","published_at":"2024-04-16T12:26:11.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.0.4rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.0.4rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.0.4rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.0.4rc1/manifests"},{"name":"providers-databricks/6.3.0rc3","sha":"13df6569d6cc131fbf096cedd46dc32b0a6cf6b2","kind":"tag","published_at":"2024-04-16T12:26:11.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.3.0rc3","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.3.0rc3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.3.0rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.3.0rc3/manifests"},{"name":"providers-cncf-kubernetes/8.1.1rc1","sha":"13df6569d6cc131fbf096cedd46dc32b0a6cf6b2","kind":"tag","published_at":"2024-04-16T12:26:11.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.1.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.1.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.1.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.1.1rc1/manifests"},{"name":"providers-yandex/3.10.0","sha":"f9dcc82fb690777e0cb4951f5ae5a4bde1e15c54","kind":"tag","published_at":"2024-04-16T07:26:28.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-yandex/3.10.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-yandex/3.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.10.0/manifests"},{"name":"providers-yandex/3.10.0rc2","sha":"f9dcc82fb690777e0cb4951f5ae5a4bde1e15c54","kind":"tag","published_at":"2024-04-13T20:13:39.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-yandex/3.10.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-yandex/3.10.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.10.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.10.0rc2/manifests"},{"name":"providers-databricks/6.3.0rc2","sha":"f9dcc82fb690777e0cb4951f5ae5a4bde1e15c54","kind":"tag","published_at":"2024-04-13T20:13:39.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.3.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.3.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.3.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.3.0rc2/manifests"},{"name":"providers-samba/4.6.0","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-samba/4.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-samba/4.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.6.0/manifests"},{"name":"providers-redis/3.6.1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-redis/3.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-redis/3.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.6.1/manifests"},{"name":"providers-papermill/3.6.2","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-papermill/3.6.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-papermill/3.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.6.2/manifests"},{"name":"providers-sftp/4.9.1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sftp/4.9.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sftp/4.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.9.1/manifests"},{"name":"providers-weaviate/1.3.4","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/1.3.4","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/1.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.3.4/manifests"},{"name":"providers-openlineage/1.7.0","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.7.0/manifests"},{"name":"providers-snowflake/5.4.0","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.4.0/manifests"},{"name":"providers-slack/8.6.2","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-slack/8.6.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-slack/8.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.6.2/manifests"},{"name":"providers-microsoft-azure/10.0.0","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.0.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.0.0/manifests"},{"name":"providers-odbc/4.5.0","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-odbc/4.5.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-odbc/4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.5.0/manifests"},{"name":"providers-microsoft-psrp/2.6.1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-psrp/2.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-psrp/2.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.6.1/manifests"},{"name":"providers-fab/1.0.3","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.0.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.0.3/manifests"},{"name":"providers-elasticsearch/5.3.4","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-elasticsearch/5.3.4","html_url":"https://github.com/apache/airflow/releases/tag/providers-elasticsearch/5.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.3.4/manifests"},{"name":"providers-http/4.10.1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-http/4.10.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-http/4.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.10.1/manifests"},{"name":"providers-google/10.17.0","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.17.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.17.0/manifests"},{"name":"providers-common-io/1.3.1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-io/1.3.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-io/1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-io%2F1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-io%2F1.3.1/manifests"},{"name":"providers-ftp/3.8.0","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ftp/3.8.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-ftp/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.8.0/manifests"},{"name":"providers-docker/3.10.0","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.10.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.10.0/manifests"},{"name":"providers-dbt-cloud/3.7.1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dbt-cloud/3.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-dbt-cloud/3.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.7.1/manifests"},{"name":"providers-common-sql/1.12.0","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.12.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.12.0/manifests"},{"name":"providers-cohere/1.1.3","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cohere/1.1.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-cohere/1.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.1.3/manifests"},{"name":"providers-celery/3.6.2","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.6.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.6.2/manifests"},{"name":"providers-cncf-kubernetes/8.1.0","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.1.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.1.0/manifests"},{"name":"providers-alibaba/2.7.3","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-alibaba/2.7.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-alibaba/2.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.7.3/manifests"},{"name":"providers-airbyte/3.7.0","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-airbyte/3.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-airbyte/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.7.0/manifests"},{"name":"providers-amazon/8.20.0","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.20.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.20.0/manifests"},{"name":"providers-apache-spark/4.7.2","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-spark/4.7.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-spark/4.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.7.2/manifests"},{"name":"providers-apache-beam/5.6.3","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-beam/5.6.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-beam/5.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.6.3/manifests"},{"name":"providers-apache-hive/8.0.0","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hive/8.0.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hive/8.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.0.0/manifests"},{"name":"providers-apache-cassandra/3.4.2","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-13T18:19:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-cassandra/3.4.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-cassandra/3.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.4.2/manifests"},{"name":"providers-http/4.10.1rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-http/4.10.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-http/4.10.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.10.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.10.1rc1/manifests"},{"name":"providers-odbc/4.5.0rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-odbc/4.5.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-odbc/4.5.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.5.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-odbc%2F4.5.0rc1/manifests"},{"name":"providers-sftp/4.9.1rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sftp/4.9.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sftp/4.9.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.9.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.9.1rc1/manifests"},{"name":"providers-samba/4.6.0rc2","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-samba/4.6.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-samba/4.6.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.6.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-samba%2F4.6.0rc2/manifests"},{"name":"providers-yandex/3.9.1rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-yandex/3.9.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-yandex/3.9.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.9.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.9.1rc1/manifests"},{"name":"providers-papermill/3.6.2rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-papermill/3.6.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-papermill/3.6.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.6.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-papermill%2F3.6.2rc1/manifests"},{"name":"providers-weaviate/1.3.4rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/1.3.4rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/1.3.4rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.3.4rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.3.4rc1/manifests"},{"name":"providers-snowflake/5.4.0rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.4.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.4.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.4.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.4.0rc1/manifests"},{"name":"providers-microsoft-psrp/2.6.1rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-psrp/2.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-psrp/2.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.6.1rc1/manifests"},{"name":"providers-openlineage/1.7.0rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.7.0rc1/manifests"},{"name":"providers-docker/3.10.0rc2","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.10.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.10.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.10.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.10.0rc2/manifests"},{"name":"providers-google/10.17.0rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.17.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.17.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.17.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.17.0rc1/manifests"},{"name":"providers-ftp/3.8.0rc2","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ftp/3.8.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-ftp/3.8.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.8.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ftp%2F3.8.0rc2/manifests"},{"name":"providers-fab/1.0.3rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.0.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.0.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.0.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.0.3rc1/manifests"},{"name":"providers-elasticsearch/5.3.4rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-elasticsearch/5.3.4rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-elasticsearch/5.3.4rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.3.4rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.3.4rc1/manifests"},{"name":"providers-dbt-cloud/3.7.1rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dbt-cloud/3.7.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-dbt-cloud/3.7.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.7.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.7.1rc1/manifests"},{"name":"providers-databricks/6.3.0rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.3.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.3.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.3.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.3.0rc1/manifests"},{"name":"providers-apache-cassandra/3.4.2rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-cassandra/3.4.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-cassandra/3.4.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.4.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-cassandra%2F3.4.2rc1/manifests"},{"name":"providers-apache-beam/5.6.3rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-beam/5.6.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-beam/5.6.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.6.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.6.3rc1/manifests"},{"name":"providers-amazon/8.20.0rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.20.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.20.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.20.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.20.0rc1/manifests"},{"name":"providers-apache-hive/8.0.0rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hive/8.0.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hive/8.0.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.0.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F8.0.0rc1/manifests"},{"name":"providers-cncf-kubernetes/8.1.0rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.1.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.1.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.1.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.1.0rc1/manifests"},{"name":"providers-celery/3.6.2rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.6.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.6.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.6.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.6.2rc1/manifests"},{"name":"providers-apache-spark/4.7.2rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-spark/4.7.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-spark/4.7.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.7.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-spark%2F4.7.2rc1/manifests"},{"name":"providers-common-sql/1.12.0rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.12.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.12.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.12.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.12.0rc1/manifests"},{"name":"providers-common-io/1.3.1rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-io/1.3.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-io/1.3.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-io%2F1.3.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-io%2F1.3.1rc1/manifests"},{"name":"providers-airbyte/3.7.0rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-airbyte/3.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-airbyte/3.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-airbyte%2F3.7.0rc1/manifests"},{"name":"providers-cohere/1.1.3rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cohere/1.1.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cohere/1.1.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.1.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cohere%2F1.1.3rc1/manifests"},{"name":"providers-redis/3.6.1rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:45.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-redis/3.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-redis/3.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-redis%2F3.6.1rc1/manifests"},{"name":"providers-slack/8.6.2rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:45.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-slack/8.6.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-slack/8.6.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.6.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.6.2rc1/manifests"},{"name":"providers-microsoft-azure/10.0.0rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:45.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/10.0.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/10.0.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.0.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F10.0.0rc1/manifests"},{"name":"providers-alibaba/2.7.3rc1","sha":"5fa80b6aea60f93cdada66f160e2b54f723865ca","kind":"tag","published_at":"2024-04-10T16:10:45.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-alibaba/2.7.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-alibaba/2.7.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.7.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-alibaba%2F2.7.3rc1/manifests"},{"name":"2.9.0","sha":"50f22ffe9150e93f7fc08a9dc8a48880daad374b","kind":"tag","published_at":"2024-04-08T09:13:53.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.9.0","html_url":"https://github.com/apache/airflow/releases/tag/2.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.0/manifests"},{"name":"constraints-2.9.0","sha":"b86d9678fba173a4b453d3115a86ded4c19d50cb","kind":"tag","published_at":"2024-04-08T09:11:42.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.9.0","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.0/manifests"},{"name":"constraints-2.9.0rc3","sha":"4642ff83ce708c9f279bd8170787855c5be73f31","kind":"tag","published_at":"2024-04-07T05:33:13.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.9.0rc3","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.9.0rc3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.0rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.0rc3/manifests"},{"name":"2.9.0rc3","sha":"50f22ffe9150e93f7fc08a9dc8a48880daad374b","kind":"tag","published_at":"2024-04-07T05:27:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.9.0rc3","html_url":"https://github.com/apache/airflow/releases/tag/2.9.0rc3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.0rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.0rc3/manifests"},{"name":"constraints-2.9.0rc2","sha":"b1ebae4b0c81f20a633c8991696ca21f671f1746","kind":"tag","published_at":"2024-04-04T21:10:40.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.9.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.9.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.0rc2/manifests"},{"name":"2.9.0rc2","sha":"920921ee39736c96e9cf7c544657ca75c7a6365a","kind":"tag","published_at":"2024-04-04T19:47:27.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.9.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/2.9.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.0rc2/manifests"},{"name":"providers-fab/1.0.2","sha":"256911aa62ecbc5be1fe4eeefd9c965077feb357","kind":"tag","published_at":"2024-04-03T12:50:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.0.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.0.2/manifests"},{"name":"constraints-2.9.0rc1","sha":"ef3ac934f0ab94fe1bd7b80e81babadb3fa22969","kind":"tag","published_at":"2024-04-03T07:23:41.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.0rc1/manifests"},{"name":"2.9.0rc1","sha":"c8c18632891295b33e8edc6a791d1adc2932c56c","kind":"tag","published_at":"2024-04-03T07:15:43.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/2.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.0rc1/manifests"},{"name":"constraints-2.9.0b2","sha":"9afc4ff4c3c018a6ab2dc183478f1333524a60b6","kind":"tag","published_at":"2024-03-27T21:02:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.9.0b2","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.9.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.0b2/manifests"},{"name":"2.9.0b2","sha":"d48b910dc137f0bad166df2387c7ceab59be629a","kind":"tag","published_at":"2024-03-27T20:56:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.9.0b2","html_url":"https://github.com/apache/airflow/releases/tag/2.9.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.0b2/manifests"},{"name":"2.8.4","sha":"34ea330b786457ab2ec591395a834e564dc999ec","kind":"tag","published_at":"2024-03-25T20:13:45.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.8.4","html_url":"https://github.com/apache/airflow/releases/tag/2.8.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.4/manifests"},{"name":"constraints-2.8.4","sha":"db4e87ae10c5fb0bdfb311b01f28f94fff9b2978","kind":"tag","published_at":"2024-03-25T20:12:53.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.8.4","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.8.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.4/manifests"},{"name":"helm-chart/1.13.1","sha":"ae6fec927c8f717d2a8481a6c3afc85a171652c6","kind":"tag","published_at":"2024-03-25T18:11:22.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/helm-chart/1.13.1","html_url":"https://github.com/apache/airflow/releases/tag/helm-chart/1.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.13.1/manifests"},{"name":"providers-fab/1.0.2rc1","sha":"256911aa62ecbc5be1fe4eeefd9c965077feb357","kind":"tag","published_at":"2024-03-25T13:43:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.0.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.0.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.0.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.0.2rc1/manifests"},{"name":"constraints-2.9.0b1","sha":"0e2008cc1e125ba95d090011a56f4fa2a414f8a8","kind":"tag","published_at":"2024-03-22T12:14:42.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.9.0b1","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.9.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.9.0b1/manifests"},{"name":"helm-chart/1.13.1rc1","sha":"ae6fec927c8f717d2a8481a6c3afc85a171652c6","kind":"tag","published_at":"2024-03-21T18:11:23.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/helm-chart/1.13.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/helm-chart/1.13.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.13.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.13.1rc1/manifests"},{"name":"2.9.0b1","sha":"7f78b16870f4844e4bdecbceffc9565b9caedc3a","kind":"tag","published_at":"2024-03-21T09:13:21.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.9.0b1","html_url":"https://github.com/apache/airflow/releases/tag/2.9.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.9.0b1/manifests"},{"name":"providers-fab/1.0.2b0","sha":"6b7a4e5f9f844d7b53ed1ae74bef448c99826f04","kind":"tag","published_at":"2024-03-20T17:37:26.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-fab/1.0.2b0","html_url":"https://github.com/apache/airflow/releases/tag/providers-fab/1.0.2b0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.0.2b0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-fab%2F1.0.2b0/manifests"},{"name":"constraints-2.8.4rc1","sha":"db4e87ae10c5fb0bdfb311b01f28f94fff9b2978","kind":"tag","published_at":"2024-03-20T15:17:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.8.4rc1","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.8.4rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.4rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.4rc1/manifests"},{"name":"2.8.4rc1","sha":"34ea330b786457ab2ec591395a834e564dc999ec","kind":"tag","published_at":"2024-03-20T15:11:08.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.8.4rc1","html_url":"https://github.com/apache/airflow/releases/tag/2.8.4rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.4rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.4rc1/manifests"},{"name":"2.8.3","sha":"948ec96724995f27a50498bb1a85864c12ba1507","kind":"tag","published_at":"2024-03-11T11:09:23.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.8.3","html_url":"https://github.com/apache/airflow/releases/tag/2.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.3/manifests"},{"name":"constraints-2.8.3","sha":"7676553c864ac4363d836412e6f2e3751babf64d","kind":"tag","published_at":"2024-03-11T11:08:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.8.3","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.3/manifests"},{"name":"providers-amazon/8.19.0","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.19.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.19.0/manifests"},{"name":"providers-apache-druid/3.9.0","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-druid/3.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-druid/3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.9.0/manifests"},{"name":"providers-apache-beam/5.6.2","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-beam/5.6.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-beam/5.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.6.2/manifests"},{"name":"providers-apache-hdfs/4.3.3","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hdfs/4.3.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hdfs/4.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.3.3/manifests"},{"name":"providers-apache-hive/7.0.1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hive/7.0.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hive/7.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F7.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F7.0.1/manifests"},{"name":"providers-apache-livy/3.7.3","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-livy/3.7.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-livy/3.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.7.3/manifests"},{"name":"providers-trino/5.6.3","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-trino/5.6.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-trino/5.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.6.3/manifests"},{"name":"providers-telegram/4.4.0","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-telegram/4.4.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-telegram/4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.4.0/manifests"},{"name":"providers-weaviate/1.3.3","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/1.3.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/1.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.3.3/manifests"},{"name":"providers-smtp/1.6.1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-smtp/1.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-smtp/1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.6.1/manifests"},{"name":"providers-presto/5.4.2","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-presto/5.4.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-presto/5.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.4.2/manifests"},{"name":"providers-salesforce/5.6.3","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-salesforce/5.6.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-salesforce/5.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.6.3/manifests"},{"name":"providers-http/4.10.0","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-http/4.10.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-http/4.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.10.0/manifests"},{"name":"providers-mysql/5.5.4","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mysql/5.5.4","html_url":"https://github.com/apache/airflow/releases/tag/providers-mysql/5.5.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.5.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.5.4/manifests"},{"name":"providers-microsoft-psrp/2.6.0","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-psrp/2.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-psrp/2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.6.0/manifests"},{"name":"providers-hashicorp/3.6.4","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-hashicorp/3.6.4","html_url":"https://github.com/apache/airflow/releases/tag/providers-hashicorp/3.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.6.4/manifests"},{"name":"providers-postgres/5.10.2","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-postgres/5.10.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-postgres/5.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.10.2/manifests"},{"name":"providers-microsoft-azure/9.0.1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/9.0.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/9.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F9.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F9.0.1/manifests"},{"name":"providers-apache-pinot/4.3.1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pinot/4.3.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pinot/4.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.3.1/manifests"},{"name":"providers-dbt-cloud/3.7.0","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dbt-cloud/3.7.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-dbt-cloud/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.7.0/manifests"},{"name":"providers-opensearch/1.1.2","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opensearch/1.1.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-opensearch/1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.1.2/manifests"},{"name":"providers-common-sql/1.11.1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.11.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.11.1/manifests"},{"name":"providers-google/10.16.0","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.16.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.16.0/manifests"},{"name":"providers-exasol/4.4.3","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-exasol/4.4.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-exasol/4.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.4.3/manifests"},{"name":"providers-cncf-kubernetes/8.0.1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.0.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.0.1/manifests"},{"name":"providers-openlineage/1.6.0","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.6.0/manifests"},{"name":"providers-docker/3.9.2","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.9.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.9.2/manifests"},{"name":"providers-celery/3.6.1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-08T10:41:38.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.6.1/manifests"},{"name":"constraints-2.8.3rc1","sha":"7676553c864ac4363d836412e6f2e3751babf64d","kind":"tag","published_at":"2024-03-07T21:01:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.8.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.8.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.3rc1/manifests"},{"name":"2.8.3rc1","sha":"948ec96724995f27a50498bb1a85864c12ba1507","kind":"tag","published_at":"2024-03-07T20:59:46.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.8.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/2.8.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.3rc1/manifests"},{"name":"helm-chart/1.13.0","sha":"f7f005f180221a1ba5dc17ef4ff49ee21a46b540","kind":"tag","published_at":"2024-03-05T16:06:17.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/helm-chart/1.13.0","html_url":"https://github.com/apache/airflow/releases/tag/helm-chart/1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.13.0/manifests"},{"name":"providers-docker/3.9.2rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-docker/3.9.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-docker/3.9.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.9.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-docker%2F3.9.2rc1/manifests"},{"name":"providers-dbt-cloud/3.7.0rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dbt-cloud/3.7.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-dbt-cloud/3.7.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.7.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.7.0rc1/manifests"},{"name":"providers-exasol/4.4.3rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-exasol/4.4.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-exasol/4.4.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.4.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-exasol%2F4.4.3rc1/manifests"},{"name":"providers-common-sql/1.11.1rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.11.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.11.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.11.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.11.1rc1/manifests"},{"name":"providers-http/4.10.0rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-http/4.10.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-http/4.10.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.10.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.10.0rc1/manifests"},{"name":"providers-hashicorp/3.6.4rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-hashicorp/3.6.4rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-hashicorp/3.6.4rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.6.4rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.6.4rc1/manifests"},{"name":"providers-google/10.16.0rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.16.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.16.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.16.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.16.0rc1/manifests"},{"name":"providers-openlineage/1.6.0rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-openlineage/1.6.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-openlineage/1.6.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.6.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-openlineage%2F1.6.0rc1/manifests"},{"name":"providers-mysql/5.5.4rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mysql/5.5.4rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-mysql/5.5.4rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.5.4rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.5.4rc1/manifests"},{"name":"providers-opensearch/1.1.2rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-opensearch/1.1.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-opensearch/1.1.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.1.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-opensearch%2F1.1.2rc1/manifests"},{"name":"providers-microsoft-psrp/2.6.0rc2","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-psrp/2.6.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-psrp/2.6.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.6.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-psrp%2F2.6.0rc2/manifests"},{"name":"providers-microsoft-azure/9.0.1rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-azure/9.0.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-azure/9.0.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F9.0.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-azure%2F9.0.1rc1/manifests"},{"name":"providers-presto/5.4.2rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-presto/5.4.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-presto/5.4.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.4.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-presto%2F5.4.2rc1/manifests"},{"name":"providers-postgres/5.10.2rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-postgres/5.10.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-postgres/5.10.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.10.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.10.2rc1/manifests"},{"name":"providers-weaviate/1.3.3rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/1.3.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/1.3.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.3.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.3.3rc1/manifests"},{"name":"providers-trino/5.6.3rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-trino/5.6.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-trino/5.6.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.6.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.6.3rc1/manifests"},{"name":"providers-telegram/4.4.0rc2","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-telegram/4.4.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-telegram/4.4.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.4.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-telegram%2F4.4.0rc2/manifests"},{"name":"providers-smtp/1.6.1rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-smtp/1.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-smtp/1.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-smtp%2F1.6.1rc1/manifests"},{"name":"providers-salesforce/5.6.3rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:33.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-salesforce/5.6.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-salesforce/5.6.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.6.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-salesforce%2F5.6.3rc1/manifests"},{"name":"providers-cncf-kubernetes/8.0.1rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:32.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.0.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.0.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.0.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.0.1rc1/manifests"},{"name":"providers-celery/3.6.1rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:32.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.6.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.6.1rc1/manifests"},{"name":"providers-apache-pinot/4.3.1rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:32.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-pinot/4.3.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-pinot/4.3.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.3.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-pinot%2F4.3.1rc1/manifests"},{"name":"providers-apache-livy/3.7.3rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:32.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-livy/3.7.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-livy/3.7.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.7.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-livy%2F3.7.3rc1/manifests"},{"name":"providers-apache-druid/3.9.0rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:32.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-druid/3.9.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-druid/3.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-druid%2F3.9.0rc1/manifests"},{"name":"providers-apache-beam/5.6.2rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:32.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-beam/5.6.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-beam/5.6.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.6.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-beam%2F5.6.2rc1/manifests"},{"name":"providers-apache-hdfs/4.3.3rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:32.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hdfs/4.3.3rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hdfs/4.3.3rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.3.3rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hdfs%2F4.3.3rc1/manifests"},{"name":"providers-amazon/8.19.0rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:32.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.19.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.19.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.19.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.19.0rc1/manifests"},{"name":"providers-apache-hive/7.0.1rc1","sha":"83316b81584c9e516a8142778fc509f19d95cc3e","kind":"tag","published_at":"2024-03-04T21:01:32.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-apache-hive/7.0.1rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-apache-hive/7.0.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F7.0.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-apache-hive%2F7.0.1rc1/manifests"},{"name":"helm-chart/1.13.0rc1","sha":"f7f005f180221a1ba5dc17ef4ff49ee21a46b540","kind":"tag","published_at":"2024-03-02T04:14:04.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/helm-chart/1.13.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/helm-chart/1.13.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.13.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/helm-chart%2F1.13.0rc1/manifests"},{"name":"constraints-2.8.2","sha":"d6962c4c333cd92d73fa46cffa97a40dda67e547","kind":"tag","published_at":"2024-02-27T16:25:47.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.8.2","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.2/manifests"},{"name":"providers-teradata/2.0.0","sha":"cef52cbdbb446f4722ba2984512508566d736466","kind":"tag","published_at":"2024-02-27T05:42:18.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.0.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.0.0/manifests"},{"name":"2.8.2","sha":"923e9104accd8bf493f33c5def42de23e2410a26","kind":"tag","published_at":"2024-02-26T06:08:13.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.8.2","html_url":"https://github.com/apache/airflow/releases/tag/2.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.2/manifests"},{"name":"constraints-2.8.2rc3","sha":"7676553c864ac4363d836412e6f2e3751babf64d","kind":"tag","published_at":"2024-02-24T15:49:40.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.8.2rc3","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.8.2rc3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.2rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.2rc3/manifests"},{"name":"2.8.2rc3","sha":"923e9104accd8bf493f33c5def42de23e2410a26","kind":"tag","published_at":"2024-02-24T15:47:44.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.8.2rc3","html_url":"https://github.com/apache/airflow/releases/tag/2.8.2rc3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.2rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.2rc3/manifests"},{"name":"constraints-2.8.2rc2","sha":"5983e2f69deb107c9a6130e0284726603790d385","kind":"tag","published_at":"2024-02-23T07:02:56.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.8.2rc2","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.8.2rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.2rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.2rc2/manifests"},{"name":"2.8.2rc2","sha":"5bb0e93166e6749d8a0bb5793ed7037ab27e3d97","kind":"tag","published_at":"2024-02-23T07:01:02.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.8.2rc2","html_url":"https://github.com/apache/airflow/releases/tag/2.8.2rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.2rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.2rc2/manifests"},{"name":"providers-teradata/2.0.0rc1","sha":"cef52cbdbb446f4722ba2984512508566d736466","kind":"tag","published_at":"2024-02-23T06:05:54.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-teradata/2.0.0rc1","html_url":"https://github.com/apache/airflow/releases/tag/providers-teradata/2.0.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.0.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-teradata%2F2.0.0rc1/manifests"},{"name":"constraints-2.8.2rc1","sha":"119f5e40a81373eee02e57c11eacf50d09e57b3f","kind":"tag","published_at":"2024-02-22T08:25:51.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/constraints-2.8.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/constraints-2.8.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/constraints-2.8.2rc1/manifests"},{"name":"2.8.2rc1","sha":"2c0a1191479f2f145d1cb90ad350c44def84281e","kind":"tag","published_at":"2024-02-22T07:59:16.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/2.8.2rc1","html_url":"https://github.com/apache/airflow/releases/tag/2.8.2rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.2rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/2.8.2rc1/manifests"},{"name":"providers-cncf-kubernetes/8.0.0","sha":"fa234e0d229dfebb6284dd851870e64186fb53e2","kind":"tag","published_at":"2024-02-20T19:22:02.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.0.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.0.0/manifests"},{"name":"providers-cncf-kubernetes/8.0.0rc3","sha":"fa234e0d229dfebb6284dd851870e64186fb53e2","kind":"tag","published_at":"2024-02-19T09:22:48.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.0.0rc3","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.0.0rc3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.0.0rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.0.0rc3/manifests"},{"name":"providers-common-sql/1.11.0","sha":"75182363a2070145745b98fa040e9bc590e3853b","kind":"tag","published_at":"2024-02-18T15:48:37.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.11.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.11.0/manifests"},{"name":"providers-amazon/8.18.0","sha":"75182363a2070145745b98fa040e9bc590e3853b","kind":"tag","published_at":"2024-02-18T15:48:37.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.18.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.18.0/manifests"},{"name":"providers-amazon/8.18.0rc2","sha":"75182363a2070145745b98fa040e9bc590e3853b","kind":"tag","published_at":"2024-02-17T07:59:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-amazon/8.18.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-amazon/8.18.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.18.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-amazon%2F8.18.0rc2/manifests"},{"name":"providers-common-sql/1.11.0rc3","sha":"75182363a2070145745b98fa040e9bc590e3853b","kind":"tag","published_at":"2024-02-17T07:59:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-sql/1.11.0rc3","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-sql/1.11.0rc3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.11.0rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-sql%2F1.11.0rc3/manifests"},{"name":"providers-cncf-kubernetes/8.0.0rc2","sha":"75182363a2070145745b98fa040e9bc590e3853b","kind":"tag","published_at":"2024-02-17T07:59:07.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-cncf-kubernetes/8.0.0rc2","html_url":"https://github.com/apache/airflow/releases/tag/providers-cncf-kubernetes/8.0.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.0.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-cncf-kubernetes%2F8.0.0rc2/manifests"},{"name":"providers-microsoft-mssql/3.6.1","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-microsoft-mssql/3.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-microsoft-mssql/3.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-microsoft-mssql%2F3.6.1/manifests"},{"name":"providers-mongo/4.0.0","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mongo/4.0.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-mongo/4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mongo%2F4.0.0/manifests"},{"name":"providers-sftp/4.9.0","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sftp/4.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-sftp/4.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sftp%2F4.9.0/manifests"},{"name":"providers-qdrant/1.0.0","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-qdrant/1.0.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-qdrant/1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-qdrant%2F1.0.0/manifests"},{"name":"providers-slack/8.6.1","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-slack/8.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-slack/8.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-slack%2F8.6.1/manifests"},{"name":"providers-postgres/5.10.1","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-postgres/5.10.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-postgres/5.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-postgres%2F5.10.1/manifests"},{"name":"providers-ssh/3.10.1","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-ssh/3.10.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-ssh/3.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-ssh%2F3.10.1/manifests"},{"name":"providers-pagerduty/3.6.2","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-pagerduty/3.6.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-pagerduty/3.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-pagerduty%2F3.6.2/manifests"},{"name":"providers-sqlite/3.7.1","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-sqlite/3.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-sqlite/3.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-sqlite%2F3.7.1/manifests"},{"name":"providers-snowflake/5.3.1","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-snowflake/5.3.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-snowflake/5.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-snowflake%2F5.3.1/manifests"},{"name":"providers-vertica/3.7.1","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-vertica/3.7.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-vertica/3.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-vertica%2F3.7.1/manifests"},{"name":"providers-influxdb/2.4.1","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-influxdb/2.4.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-influxdb/2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-influxdb%2F2.4.1/manifests"},{"name":"providers-trino/5.6.2","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-trino/5.6.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-trino/5.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-trino%2F5.6.2/manifests"},{"name":"providers-weaviate/1.3.2","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-weaviate/1.3.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-weaviate/1.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-weaviate%2F1.3.2/manifests"},{"name":"providers-http/4.9.1","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-http/4.9.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-http/4.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-http%2F4.9.1/manifests"},{"name":"providers-tableau/4.4.2","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-tableau/4.4.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-tableau/4.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-tableau%2F4.4.2/manifests"},{"name":"providers-oracle/3.9.2","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-oracle/3.9.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-oracle/3.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-oracle%2F3.9.2/manifests"},{"name":"providers-jdbc/4.2.2","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-jdbc/4.2.2","html_url":"https://github.com/apache/airflow/releases/tag/providers-jdbc/4.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-jdbc%2F4.2.2/manifests"},{"name":"providers-yandex/3.9.0","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-yandex/3.9.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-yandex/3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-yandex%2F3.9.0/manifests"},{"name":"providers-mysql/5.5.3","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-mysql/5.5.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-mysql/5.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-mysql%2F5.5.3/manifests"},{"name":"providers-dbt-cloud/3.6.1","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-dbt-cloud/3.6.1","html_url":"https://github.com/apache/airflow/releases/tag/providers-dbt-cloud/3.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-dbt-cloud%2F3.6.1/manifests"},{"name":"providers-hashicorp/3.6.3","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-hashicorp/3.6.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-hashicorp/3.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-hashicorp%2F3.6.3/manifests"},{"name":"providers-google/10.15.0","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-google/10.15.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-google/10.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-google%2F10.15.0/manifests"},{"name":"providers-databricks/6.2.0","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-databricks/6.2.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-databricks/6.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-databricks%2F6.2.0/manifests"},{"name":"providers-elasticsearch/5.3.3","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-elasticsearch/5.3.3","html_url":"https://github.com/apache/airflow/releases/tag/providers-elasticsearch/5.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-elasticsearch%2F5.3.3/manifests"},{"name":"providers-common-io/1.3.0","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-common-io/1.3.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-common-io/1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-io%2F1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-common-io%2F1.3.0/manifests"},{"name":"providers-celery/3.6.0","sha":"bfb054e9e867b8b9a6a449e43bfba97f645e025e","kind":"tag","published_at":"2024-02-15T15:48:36.000Z","download_url":"https://codeload.github.com/apache/airflow/tar.gz/providers-celery/3.6.0","html_url":"https://github.com/apache/airflow/releases/tag/providers-celery/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/tags/providers-celery%2F3.6.0/manifests"}]},"repo_metadata_updated_at":"2024-10-29T15:51:37.556Z","dependent_packages_count":314,"downloads":18817588,"downloads_period":"last-month","dependent_repos_count":1554,"rankings":{"downloads":0.04677122634155468,"dependent_repos_count":0.27842635916266667,"dependent_packages_count":0.07391687927704524,"stargazers_count":0.12050468904471147,"forks_count":0.05539180531431181,"docker_downloads_count":0.3671999809246763,"average":0.15703515667749438},"purl":"pkg:pypi/apache-airflow","advisories":[{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTg2dnAteDNwci03OXJ4","url":"https://github.com/advisories/GHSA-86vp-x3pr-79rx","title":"Apache Airflow cross-site scripting due to incomplete fix for CVE-2020-13944","description":"The `origin` parameter passed to some of the endpoints like `/trigger` was vulnerable to XSS exploit. This issue affects Apache Airflow versions prior to 1.10.15. This is same as CVE-2020-13944 but the implemented fix in Airflow 1.10.13 did not fix the issue completely.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2021-04-20T16:40:14.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2020-17515","https://lists.apache.org/thread.html/r2892ef594dbbf54d0939b808626f52f7c2d1584f8aa1d81570847d2a@%3Cannounce.apache.org%3E","https://lists.apache.org/thread.html/r2892ef594dbbf54d0939b808626f52f7c2d1584f8aa1d81570847d2a@%3Cdev.airflow.apache.org%3E","https://lists.apache.org/thread.html/r2892ef594dbbf54d0939b808626f52f7c2d1584f8aa1d81570847d2a@%3Cusers.airflow.apache.org%3E","https://lists.apache.org/thread.html/r4656959c8ed06c1f6202d89aa4e67b35ad7bdba5a666caff3fea888e%40%3Cusers.airflow.apache.org%3E","https://lists.apache.org/thread.html/r4656959c8ed06c1f6202d89aa4e67b35ad7bdba5a666caff3fea888e@%3Cusers.airflow.apache.org%3E","http://www.openwall.com/lists/oss-security/2020/12/11/2","https://lists.apache.org/thread.html/ra8ce70088ba291f358e077cafdb14d174b7a1ce9a9d86d1b332d6367@%3Cusers.airflow.apache.org%3E","http://www.openwall.com/lists/oss-security/2021/05/01/2","https://github.com/apache/airflow/pull/14738","https://github.com/apache/airflow/commit/409c249121bd9c8902fc2ba551b21873ab41f953","https://github.com/apache/airflow/releases/tag/1.10.15","https://github.com/apache/airflow/releases/tag/2.0.2","https://lists.apache.org/thread.html/rc005f4de9d9b0ba943ceb8ff5a21a5c6ff8a9df52632476698d99432@%3Cannounce.apache.org%3E","https://pypi.org/project/apache-airflow","https://github.com/apache/airflow/commit/13336272e32872247fa7d17e964ccd88ec8d1376","https://github.com/apache/airflow/commit/7486153f451e4d2bb1c6fd9cbb5a63430157c99c","https://github.com/apache/airflow/commit/ab8c55878e3e4257d2276226cb17b047ba856686","https://github.com/apache/airflow/commit/c6369beed53d41c0a70415b0d958bf0604124ad7","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2020-21.yaml","https://github.com/advisories/GHSA-86vp-x3pr-79rx"],"source_kind":"github","identifiers":["GHSA-86vp-x3pr-79rx","CVE-2020-17515"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.0.2rc1","vulnerable_version_range":"\u003e= 2.0.0b1, \u003c 2.0.2rc1"},{"first_patched_version":"1.10.15rc1","vulnerable_version_range":"\u003c 1.10.15rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:05.042Z","updated_at":"2024-09-11T17:06:12.000Z","epss_percentage":0.10066,"epss_percentile":0.92653},{"uuid":"GSA_kwCzR0hTQS04ZjU3LXdjbWctNGptaM4AA39V","url":"https://github.com/advisories/GHSA-8f57-wcmg-4jmh","title":"Apache Airflow vulnerable to Exposure of Resource to Wrong Sphere","description":"Apache Airflow, in versions prior to 2.8.0, contains a security vulnerability that allows an authenticated user with limited access to some DAGs, to craft a request that could give the user write access to various DAG resources for DAGs that the user had no access to, thus, enabling the user to clear DAGs they shouldn't.\n\nThis is a missing fix for CVE-2023-42792 in Apache Airflow 2.7.2 \n\nUsers of Apache Airflow are strongly advised to upgrade to version 2.8.0 or newer to mitigate the risk associated with this vulnerability.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-12-21T12:30:27.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2023-48291","https://github.com/apache/airflow/pull/34366","https://lists.apache.org/thread/3nl0h014274yjlt1hd02z0q78ftyz0z3","https://github.com/apache/airflow/commit/4f1b500c47813c54349b7d3e48df0a444fb4826c","http://www.openwall.com/lists/oss-security/2023/12/21/1","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-265.yaml","https://github.com/advisories/GHSA-8f57-wcmg-4jmh"],"source_kind":"github","identifiers":["GHSA-8f57-wcmg-4jmh","CVE-2023-48291"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.8.0","vulnerable_version_range":"\u003c 2.8.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-12-21T19:05:58.940Z","updated_at":"2024-11-21T21:35:17.000Z","epss_percentage":0.00068,"epss_percentile":0.21356},{"uuid":"GSA_kwCzR0hTQS02NjZnLXJmYzUtYzlqds4AA2wn","url":"https://github.com/advisories/GHSA-666g-rfc5-c9jv","title":"Apache Airflow Celery provider Insertion of Sensitive Information into Log File vulnerability","description":"Insertion of Sensitive Information into Log File vulnerability in Apache Airflow Celery provider, Apache Airflow.\n\nSensitive information logged as clear text when rediss, amqp, rpc protocols are used as Celery result backend\nNote: the vulnerability is about the information exposed in the logs not about accessing the logs.\n\nThis issue affects Apache Airflow Celery provider: from 3.3.0 through 3.4.0; Apache Airflow: from 1.10.0 through 2.6.3.\n\nUsers are recommended to upgrade Airflow Celery provider to version 3.4.1 and Apache Airlfow to version 2.7.0 which fixes the issue.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2023-10-28T09:30:44.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2023-46215","https://github.com/apache/airflow/pull/34954","https://lists.apache.org/thread/wm1jfmks7r6m7bj0mq4lmw3998svn46n","http://www.openwall.com/lists/oss-security/2023/10/28/1","https://github.com/advisories/GHSA-666g-rfc5-c9jv"],"source_kind":"github","identifiers":["GHSA-666g-rfc5-c9jv","CVE-2023-46215"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.7.0","vulnerable_version_range":"\u003e= 1.10.0, \u003c 2.7.0"}],"ecosystem":"pypi","package_name":"apache-airflow"},{"versions":[{"first_patched_version":"3.4.1","vulnerable_version_range":"\u003e= 3.3.0, \u003c 3.4.1"}],"ecosystem":"pypi","package_name":"apache-airflow-providers-celery"}],"created_at":"2023-11-08T15:06:16.221Z","updated_at":"2025-02-13T19:20:39.000Z","epss_percentage":0.00144,"epss_percentile":0.35798},{"uuid":"GSA_kwCzR0hTQS1jZmYzLTVxcnAtaHF4N84AA6TU","url":"https://github.com/advisories/GHSA-cff3-5qrp-hqx7","title":"Apache Airflow Improper Preservation of Permissions vulnerability","description":"Improper Preservation of Permissions vulnerability in Apache Airflow. This issue affects Apache Airflow from 2.8.2 through 2.8.3.\n\nAirflow's local file task handler in Airflow incorrectly set permissions for all parent folders of log folder, in default configuration adding write access to Unix group of the folders. In the case Airflow is run with the root user (not recommended) it added group write permission to all folders up to the root of the filesystem.\n\nIf your log files are stored in the home directory, these permission changes might impact your ability to run SSH operations after your home directory becomes group-writeable.\n\nThis issue does not affect users who use or extend Airflow using Official Airflow Docker reference images ( https://hub.docker.com/r/apache/airflow/ ) - those images require to have group write permission set anyway.\n\nYou are affected only if you install Airflow using local installation / virtualenv or other Docker images, but the issue has no impact if docker containers are used as intended, i.e. where Airflow components do not share containers with other applications and users.\n\nAlso you should not be affected if your umask is 002 (group write enabled) - this is the default on many linux systems.\n\nRecommendation for users using Airflow outside of the containers:\n\n  *  if you are using root to run Airflow, change your Airflow user to use non-root\n  *  upgrade Apache Airflow to 2.8.4 or above\n  *  If you prefer not to upgrade, you can change the  https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html#file-task-handler-new-folder-permissions  to 0o755 (original value 0o775).\n  *  if you already ran Airflow tasks before and your default umask is 022 (group write disabled) you should stop Airflow components, check permissions of AIRFLOW_HOME/logs in all your components and all parent directories of this directory and remove group write access for all the parent directories","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-03-26T18:32:06.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2024-29735","https://github.com/apache/airflow/pull/37310","https://lists.apache.org/thread/8khb1rtbznh100o325fb8xw5wjvtv536","https://github.com/apache/airflow/issues/37200","https://github.com/apache/airflow/commit/aae4a83cdfb3be4afeefd88a7bfa3c4d8d184958","https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html#file-task-handler-new-folder-permissions","http://www.openwall.com/lists/oss-security/2024/03/26/2","https://github.com/advisories/GHSA-cff3-5qrp-hqx7"],"source_kind":"github","identifiers":["GHSA-cff3-5qrp-hqx7","CVE-2024-29735"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.8.4","vulnerable_version_range":"\u003e= 2.8.2, \u003c 2.8.4"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-03-27T03:04:38.928Z","updated_at":"2024-05-02T19:01:36.000Z","epss_percentage":0.00114,"epss_percentile":0.31164},{"uuid":"GSA_kwCzR0hTQS0yNTIyLW1yamMtbTY4OM4AA7Kq","url":"https://github.com/advisories/GHSA-2522-mrjc-m688","title":"Apache Airflow: Sensitive configuration for providers displayed when \"non-sensitive-only\" config used","description":"Airflow versions 2.7.0 through 2.8.4 have a vulnerability that allows an authenticated user to see sensitive provider configuration via the \"configuration\" UI page when \"non-sensitive-only\" was set as \"webserver.expose_config\" configuration (The celery provider is the only community provider currently that has sensitive configurations). You should migrate to Airflow 2.9 or change your \"expose_config\" configuration to False as a workaround. This is similar, but different to  CVE-2023-46288 https://github.com/advisories/GHSA-9qqg-mh7c-chfq  which concerned API, not UI configuration page.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-04-18T09:30:44.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2024-31869","https://github.com/apache/airflow/pull/38795","https://lists.apache.org/thread/pz6vg7wcjk901rmsgt86h76g6kfcgtk3","https://github.com/apache/airflow/commit/042c2acaed7c01933d37c2f8434640ce140a4b27","http://www.openwall.com/lists/oss-security/2024/04/17/10","https://github.com/advisories/GHSA-2522-mrjc-m688"],"source_kind":"github","identifiers":["GHSA-2522-mrjc-m688","CVE-2024-31869"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.9.0","vulnerable_version_range":"\u003e= 2.7.0, \u003c 2.9.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-04-18T17:04:48.587Z","updated_at":"2025-02-11T19:03:14.000Z","epss_percentage":0.00025,"epss_percentile":0.05227},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXc2ajQtM2doMi05ZjVq","url":"https://github.com/advisories/GHSA-w6j4-3gh2-9f5j","title":"Apache Airflow vulnerable to CSRF Attacks","description":"A number of HTTP endpoints in the Airflow webserver (both RBAC and classic) did not have adequate protection and were vulnerable to cross-site request forgery attacks.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2019-04-18T14:27:40.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2019-0229","https://github.com/advisories/GHSA-w6j4-3gh2-9f5j","https://lists.apache.org/thread.html/2de387213d45bc626d27554a1bde7b8c67d08720901f82a50b6f4231@%3Cdev.airflow.apache.org%3E","http://www.openwall.com/lists/oss-security/2019/04/10/6","https://web.archive.org/web/20200227081055/http://www.securityfocus.com/bid/107869","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2019-215.yaml"],"source_kind":"github","identifiers":["GHSA-w6j4-3gh2-9f5j","CVE-2019-0229"],"repository_url":null,"blast_radius":27.765623825844585,"packages":[{"versions":[{"first_patched_version":"1.10.3","vulnerable_version_range":"\u003c 1.10.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:30.427Z","updated_at":"2024-09-12T20:30:52.000Z","epss_percentage":0.00401,"epss_percentile":0.59549},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLThwN3YtMmp2ai12NTRy","url":"https://github.com/advisories/GHSA-8p7v-2jvj-v54r","title":"Apache Airflow vulnerable to Stored XSS","description":"A malicious admin user could edit the state of objects in the Airflow metadata database to execute arbitrary javascript on certain page views.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2019-04-12T20:42:25.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2019-0216","https://github.com/advisories/GHSA-8p7v-2jvj-v54r","https://lists.apache.org/thread.html/2de387213d45bc626d27554a1bde7b8c67d08720901f82a50b6f4231@%3Cdev.airflow.apache.org%3E","http://www.openwall.com/lists/oss-security/2019/04/10/6","https://web.archive.org/web/20200227081055/http://www.securityfocus.com/bid/107869","https://github.com/apache/airflow/commit/73280e489c8a766264f2dd9225c3c899f31be758","https://github.com/apache/airflow/commit/a7d8fe64a15b9c228654441166a5ba85d0a5f8ef","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2019-214.yaml"],"source_kind":"github","identifiers":["GHSA-8p7v-2jvj-v54r","CVE-2019-0216"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.914690376663945,"packages":[{"versions":[{"first_patched_version":"1.10.3","vulnerable_version_range":"\u003c 1.10.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:30.487Z","updated_at":"2024-09-11T21:29:15.000Z","epss_percentage":0.00704,"epss_percentile":0.70749},{"uuid":"GSA_kwCzR0hTQS1yN3g2LXhmY20tM214ds4AA3Cw","url":"https://github.com/advisories/GHSA-r7x6-xfcm-3mxv","title":"Apache Airflow vulnerable to Exposure of Sensitive Information to an Unauthorized Actor","description":"Apache Airflow, versions before 2.7.3, has a vulnerability that allows an authorized user who has access to read specific DAGs only, to read information about task instances in other DAGs.  This is a different issue than CVE-2023-42663 but leading to similar outcome.\nUsers of Apache Airflow are advised to upgrade to version 2.7.3 or newer to mitigate the risk associated with this vulnerability.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2023-11-12T15:30:20.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-42781","https://github.com/apache/airflow/pull/34939","https://lists.apache.org/thread/7dnl8nszdxqyns57f3dw0sloy5dfl9o1","http://www.openwall.com/lists/oss-security/2023/11/12/2","https://github.com/apache/airflow/commit/33ec72948f74f56f2adb5e2d388e60e88e8a3fa3","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-231.yaml","https://github.com/advisories/GHSA-r7x6-xfcm-3mxv"],"source_kind":"github","identifiers":["GHSA-r7x6-xfcm-3mxv","CVE-2023-42781"],"repository_url":"https://github.com/apache/airflow","blast_radius":22.659302202700754,"packages":[{"versions":[{"first_patched_version":"2.7.3","vulnerable_version_range":"\u003c 2.7.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-11-14T21:06:02.770Z","updated_at":"2024-11-18T16:26:33.000Z","epss_percentage":0.0004,"epss_percentile":0.11696},{"uuid":"GSA_kwCzR0hTQS12Y2Y2LTN3djItNXZjcs4AAzHH","url":"https://github.com/advisories/GHSA-vcf6-3wv2-5vcr","title":"Apache Airflow vulnerable to stored Cross-site Scripting","description":"Task instance details page in the UI is vulnerable to stored cross-site scripting. This issue affects Apache Airflow before 2.6.0.\n\n\n","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-05-08T12:30:28.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-29247","https://github.com/apache/airflow/pull/30447","https://github.com/apache/airflow/pull/30779","https://lists.apache.org/thread/kqf5lxmko133780clsp827xfsh4xd3fl","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-60.yaml","https://github.com/apache/airflow/commit/46c85ec11d224c133da6c45c1186c9aa498a7e75","https://github.com/apache/airflow/commit/f819dfcb24c597058b7b671f6317e4c84976975e","https://github.com/advisories/GHSA-vcf6-3wv2-5vcr"],"source_kind":"github","identifiers":["GHSA-vcf6-3wv2-5vcr","CVE-2023-29247"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.276400173770966,"packages":[{"versions":[{"first_patched_version":"2.6.0","vulnerable_version_range":"\u003c 2.6.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-05-08T21:03:20.976Z","updated_at":"2024-09-12T14:08:49.000Z","epss_percentage":0.003,"epss_percentile":0.52916},{"uuid":"GSA_kwCzR0hTQS14Mm1oLThmbWMtcnFnaM4AA1eL","url":"https://github.com/advisories/GHSA-x2mh-8fmc-rqgh","title":"Apache Airflow denial of service vulnerability","description":"Apache Airflow, in versions prior to 2.7.0, contains a security vulnerability that can be exploited by an authenticated user possessing Connection edit privileges. This vulnerability allows the user to access connection information and exploit the test connection feature by sending many requests, leading to a denial of service (DoS) condition on the server. Furthermore, malicious actors can leverage this vulnerability to establish harmful connections with the server.\n\nUsers of Apache Airflow are strongly advised to upgrade to version 2.7.0 or newer to mitigate the risk associated with this vulnerability. Additionally, administrators are encouraged to review and adjust user permissions to restrict access to sensitive functionalities, reducing the attack surface.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2023-08-23T18:30:34.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.2,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-37379","https://github.com/apache/airflow/pull/32052","https://lists.apache.org/thread/g5c9vcn27lr14go48thrjpo6f4vw571r","http://www.openwall.com/lists/oss-security/2023/08/23/4","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-152.yaml","https://github.com/apache/airflow/commit/e4c3ecf8ceaefa17525b495e4bcb5b2f41309603","https://github.com/advisories/GHSA-x2mh-8fmc-rqgh"],"source_kind":"github","identifiers":["GHSA-x2mh-8fmc-rqgh","CVE-2023-37379"],"repository_url":"https://github.com/apache/airflow","blast_radius":22.978447304147245,"packages":[{"versions":[{"first_patched_version":"2.7.0b1","vulnerable_version_range":"\u003c 2.7.0b1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-08-24T13:05:31.229Z","updated_at":"2025-02-13T19:11:03.000Z","epss_percentage":0.00178,"epss_percentile":0.40084},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXJ2bXEtNHg2Ni1xN2oz","url":"https://github.com/advisories/GHSA-rvmq-4x66-q7j3","title":"Remote code execution (RCE) in Apache Airflow","description":"An issue was found in Apache Airflow versions 1.10.10 and below. A remote code/command injection vulnerability was discovered in one of the example DAGs shipped with Airflow which would allow any authenticated user to run arbitrary commands as the user running airflow worker/scheduler (depending on the executor in use). If you already have examples disabled by setting `load_examples=False` in the config then you are not vulnerable.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2020-07-27T16:57:33.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2020-11978","https://lists.apache.org/thread.html/r7255cf0be3566f23a768e2a04b40fb09e52fcd1872695428ba9afe91%40%3Cusers.airflow.apache.org%3E","http://packetstormsecurity.com/files/162908/Apache-Airflow-1.10.10-Remote-Code-Execution.html","http://packetstormsecurity.com/files/174764/Apache-Airflow-1.10.10-Remote-Code-Execution.html","https://github.com/apache/airflow/commit/2fa51576e1283f5732e38fada686fd248d9c3a1e","https://github.com/apache/airflow/commit/4d8599e8b0520ff4226fbad72f724afae50fdd08","https://github.com/apache/airflow/pull/9143","https://github.com/advisories/GHSA-rvmq-4x66-q7j3","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2020-14.yaml"],"source_kind":"github","identifiers":["GHSA-rvmq-4x66-q7j3","CVE-2020-11978"],"repository_url":"https://github.com/apache/airflow","blast_radius":27.765623825844585,"packages":[{"versions":[{"first_patched_version":"1.10.11rc1","vulnerable_version_range":"\u003e= 0, \u003c 1.10.11rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:23.470Z","updated_at":"2024-09-11T19:48:18.000Z","epss_percentage":0.94269,"epss_percentile":0.99925},{"uuid":"GSA_kwCzR0hTQS05MnhnLWdtcnEtNWMzd84AA_W0","url":"https://github.com/advisories/GHSA-92xg-gmrq-5c3w","title":"Apache Airflow vulnerable to Execution with Unnecessary Privileges","description":"Apache Airflow versions before 2.10.1 have a vulnerability that allows DAG authors to add local settings to the DAG folder and get it executed by the scheduler, where the scheduler is not supposed to execute code submitted by the DAG author. \nUsers are advised to upgrade to version 2.10.1 or later, which has fixed the vulnerability.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2024-09-07T09:30:31.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2024-45034","https://github.com/apache/airflow/pull/41672","https://lists.apache.org/thread/b4fcw33vh60yfg9990n5vmc7sy2dcgjx","https://github.com/apache/airflow/commit/03e01e76d2203d37aa645096df195b4328665f6d","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2024-212.yaml","http://www.openwall.com/lists/oss-security/2024/09/06/3","https://github.com/advisories/GHSA-92xg-gmrq-5c3w"],"source_kind":"github","identifiers":["GHSA-92xg-gmrq-5c3w","CVE-2024-45034"],"repository_url":"https://github.com/apache/airflow","blast_radius":27.765623825844585,"packages":[{"versions":[{"first_patched_version":"2.10.1","vulnerable_version_range":"\u003c 2.10.1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-09-09T19:06:22.283Z","updated_at":"2025-01-21T17:53:30.000Z","epss_percentage":0.00611,"epss_percentile":0.68712},{"uuid":"GSA_kwCzR0hTQS1nNWh2LXI3NDMtdjhwbc4AA9-F","url":"https://github.com/advisories/GHSA-g5hv-r743-v8pm","title":"Apache Airflow has DAG Author Code Execution possibility in airflow-scheduler","description":"Apache Airflow 2.4.0, and versions before 2.9.3, has a vulnerability that allows authenticated DAG authors to craft a doc_md parameter in a way that could execute arbitrary code in the scheduler context, which should be forbidden according to the Airflow Security model. Users should upgrade to version 2.9.3 or later which has removed the vulnerability.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2024-07-17T09:30:49.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2024-39877","https://github.com/apache/airflow/pull/40522","https://lists.apache.org/thread/1xhj9dkp37d6pzn24ll2mf94wbqnb2y1","https://github.com/apache/airflow/commit/8159f6e24704f5e0e3b3217cf79ecf5083dce531","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2024-190.yaml","http://www.openwall.com/lists/oss-security/2024/07/16/7","https://github.com/advisories/GHSA-g5hv-r743-v8pm"],"source_kind":"github","identifiers":["GHSA-g5hv-r743-v8pm","CVE-2024-39877"],"repository_url":"https://github.com/apache/airflow","blast_radius":27.765623825844585,"packages":[{"versions":[{"first_patched_version":"2.9.3","vulnerable_version_range":"\u003e= 2.4.0, \u003c 2.9.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-07-17T18:05:52.968Z","updated_at":"2025-01-21T17:58:57.000Z","epss_percentage":0.00125,"epss_percentile":0.32884},{"uuid":"GSA_kwCzR0hTQS1qY2htLWZtNHEtYzJmcM4AAzHG","url":"https://github.com/advisories/GHSA-jchm-fm4q-c2fp","title":"Apache Airflow vulnerable to Privilege Context Switching Error","description":"Privilege Context Switching Error vulnerability in Apache Software Foundation Apache Airflow. This issue affects Apache Airflow: before 2.6.0.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2023-05-08T12:30:29.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-25754","https://github.com/apache/airflow/pull/29506","https://lists.apache.org/thread/3y83gr0qb8t49ppfk4fb2yk7md8ltq4v","https://github.com/apache/airflow/releases/tag/2.6.0","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-59.yaml","https://github.com/apache/airflow/commit/18347d36e67894604436f3ef47d273532683b473","https://www.openwall.com/lists/oss-security/2023/05/08/2","http://www.openwall.com/lists/oss-security/2023/05/08/2","https://github.com/advisories/GHSA-jchm-fm4q-c2fp"],"source_kind":"github","identifiers":["GHSA-jchm-fm4q-c2fp","CVE-2023-25754"],"repository_url":"https://github.com/apache/airflow","blast_radius":29.680494434523528,"packages":[{"versions":[{"first_patched_version":"2.6.0b1","vulnerable_version_range":"\u003c 2.6.0b1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-05-11T21:03:21.319Z","updated_at":"2025-02-13T18:54:29.000Z","epss_percentage":0.00227,"epss_percentile":0.45557},{"uuid":"GSA_kwCzR0hTQS1tamZmLXd2ODUtaG1jas4AAz7T","url":"https://github.com/advisories/GHSA-mjff-wv85-hmcj","title":"Apache Airflow vulnerable to exposure of sensitive information","description":"In Apache Airflow, some potentially sensitive values were being shown to the user in certain situations.\n\nThis vulnerability is mitigated by the fact configuration is not shown in the UI by default (only if `[webserver] expose_config` is set to `non-sensitive-only`), and not all uncensored values are actually sentitive.\n\nThis issue affects Apache Airflow: from 2.5.0 before 2.6.2. Users are recommended to update to version 2.6.2 or later.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2023-06-19T09:30:17.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-35005","https://github.com/apache/airflow/pull/31788","https://github.com/apache/airflow/pull/31820","https://lists.apache.org/thread/o4f2cxh0054m9tlxpb81c1yhylor5gjd","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-89.yaml","https://github.com/apache/airflow/commit/5679a01919ac9d5153e858f8b1390cbc7915f148","https://github.com/apache/airflow/commit/f6cda8fb63250fc4700658999739c1c3c5f6625c","https://github.com/advisories/GHSA-mjff-wv85-hmcj"],"source_kind":"github","identifiers":["GHSA-mjff-wv85-hmcj","CVE-2023-35005"],"repository_url":"https://github.com/apache/airflow","blast_radius":22.659302202700754,"packages":[{"versions":[{"first_patched_version":"2.6.2rc1","vulnerable_version_range":"\u003e= 2.5.0, \u003c 2.6.2rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-06-19T23:03:25.882Z","updated_at":"2024-11-18T16:26:30.000Z","epss_percentage":0.00187,"epss_percentile":0.41087},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLThmZzQtajU2Mi1tanJj","url":"https://github.com/advisories/GHSA-8fg4-j562-mjrc","title":"Improper Input Validation in Apache Airflow resulting in Remote Code Execution","description":"In Apache Airflow 1.8.2 and earlier, an authenticated user can execute code remotely on the Airflow webserver by creating a special object.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2019-01-25T16:19:01.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2017-15720","https://github.com/advisories/GHSA-8fg4-j562-mjrc","https://lists.apache.org/thread.html/ade4d54ebf614f68dc81a08891755e60ea58ba88e0209233eeea5f57@%3Cdev.airflow.apache.org%3E","https://github.com/apache/airflow/commit/04cacdd0a7526927137b452f38c3e894a5d2ce4a","https://github.com/apache/airflow/commit/daa281c0364609d6812921123cf47e4118b40484","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2019-147.yaml"],"source_kind":"github","identifiers":["GHSA-8fg4-j562-mjrc","CVE-2017-15720"],"repository_url":"https://github.com/apache/airflow","blast_radius":27.765623825844585,"packages":[{"versions":[{"first_patched_version":"1.9.0","vulnerable_version_range":"\u003c= 1.8.2"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:31.829Z","updated_at":"2024-09-09T21:31:29.000Z","epss_percentage":0.00364,"epss_percentile":0.57613},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTc3cmMteDg0cS1wdjRm","url":"https://github.com/advisories/GHSA-77rc-x84q-pv4f","title":"Improper Certificate Validation in Apache Airflow","description":"The LDAP auth backend (airflow.contrib.auth.backends.ldap_auth) prior to Apache Airflow 1.10.1 was misconfigured and contained improper checking of exceptions which disabled server certificate checking.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2019-01-25T16:19:19.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2018-20245","https://github.com/advisories/GHSA-77rc-x84q-pv4f","https://lists.apache.org/thread.html/b549c7573b342a6e457e5a3225c33054244343927bbfb2a4cdc4cf73@%3Cdev.airflow.apache.org%3E","https://github.com/apache/airflow/commit/28abf87bd173cc4cedc57f553118470e5745a968","https://github.com/apache/airflow/commit/66d0d05ea0802aec407e0ef5435a962080db0926","https://github.com/apache/airflow/commit/d8d0e8c59203f793f81d47d5adb1362df0b5d8d1","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2019-143.yaml"],"source_kind":"github","identifiers":["GHSA-77rc-x84q-pv4f","CVE-2018-20245"],"repository_url":"https://github.com/apache/airflow","blast_radius":27.765623825844585,"packages":[{"versions":[{"first_patched_version":"1.10.1","vulnerable_version_range":"\u003c 1.10.1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:31.798Z","updated_at":"2024-09-04T20:53:36.000Z","epss_percentage":0.00359,"epss_percentile":0.57029},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTY4d3YtcmpybS01NzZw","url":"https://github.com/advisories/GHSA-68wv-rjrm-576p","title":"Cross-Site Request Forgery (CSRF) in Apache Airflow","description":"In Apache Airflow 1.8.2 and earlier, a CSRF vulnerability allowed for a remote command injection on a default install of Airflow.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2019-01-25T16:19:14.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2017-17835","https://github.com/advisories/GHSA-68wv-rjrm-576p","https://lists.apache.org/thread.html/ade4d54ebf614f68dc81a08891755e60ea58ba88e0209233eeea5f57@%3Cdev.airflow.apache.org%3E","https://github.com/apache/airflow/commit/673026c740411cc6447aede8c6a816460fe03a59","https://github.com/apache/airflow/commit/c9dc9263986c1a55520ba44b6e5b0fcbd6c48712","https://github.com/apache/airflow/commit/dca5e7d116b5c8b103df13f89f061757c13c41ae","https://github.com/apache/airflow/commit/6aca2c2d395952341ab1b201c59011920b5a5c77","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2019-148.yaml"],"source_kind":"github","identifiers":["GHSA-68wv-rjrm-576p","CVE-2017-17835"],"repository_url":"https://github.com/apache/airflow","blast_radius":27.765623825844585,"packages":[{"versions":[{"first_patched_version":"1.9.0","vulnerable_version_range":"\u003c= 1.8.2"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:31.808Z","updated_at":"2024-09-11T19:59:02.000Z","epss_percentage":0.00243,"epss_percentile":0.47588},{"uuid":"GSA_kwCzR0hTQS1xOGg5LXBxY3gtNTlod84AAunZ","url":"https://github.com/advisories/GHSA-q8h9-pqcx-59hw","title":"Apache Airflow exposes arbitrary file content","description":"In Apache Airflow prior to 2.3.4, an insecure umask was configured for numerous Airflow components when running with the `--daemon` flag which could result in a race condition giving world-writable files in the Airflow home directory and allowing local users to expose arbitrary file contents via the webserver.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2022-09-03T00:00:25.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.7,"cvss_vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2022-38170","https://lists.apache.org/thread/zn8mbbb1j2od5nc9zhrvb7rpsrg1vvzv","http://www.openwall.com/lists/oss-security/2022/09/02/3","http://www.openwall.com/lists/oss-security/2022/09/02/12","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2022-261.yaml","http://www.openwall.com/lists/oss-security/2022/09/21/2","https://github.com/apache/airflow/commit/b6a2cd1aa34f69a36ea127e4f7f5ba87f4aca420","https://github.com/apache/airflow/commit/bf01d10cd348e679916034de1befb79ec6e46ff8","https://github.com/apache/airflow/commit/c14ea8f0f34944d2ecfa9021d167602e8b2b8b90","https://github.com/advisories/GHSA-q8h9-pqcx-59hw"],"source_kind":"github","identifiers":["GHSA-q8h9-pqcx-59hw","CVE-2022-38170"],"repository_url":"https://github.com/apache/airflow","blast_radius":18.191270782449905,"packages":[{"versions":[{"first_patched_version":"2.3.4","vulnerable_version_range":"\u003c 2.3.4"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:11:59.143Z","updated_at":"2024-09-11T20:00:44.000Z","epss_percentage":0.00119,"epss_percentile":0.31989},{"uuid":"GSA_kwCzR0hTQS03d3FmLWgzNnctNDdtY84AAwAE","url":"https://github.com/advisories/GHSA-7wqf-h36w-47mc","title":"OS Command Injection in Apache Airflow","description":"Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') vulnerability in Apache Airflow Pinot Provider, Apache Airflow allows an attacker to control commands executed in the task execution context, without write access to DAG files. This issue affects Apache Airflow Pinot Provider versions prior to 4.0.0. It also impacts any Apache Airflow versions prior to 2.3.0 in case Apache Airflow Pinot Provider is installed (Apache Airflow Pinot Provider 4.0.0 can only be installed for Airflow 2.3.0+). Note that you need to manually install the Pinot Provider version 4.0.0 in order to get rid of the vulnerability on top of Airflow 2.3.0+ version.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2022-11-22T12:30:22.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2022-38649","https://github.com/apache/airflow/pull/27641","https://lists.apache.org/thread/033o1gbc4ly6dpd2xf1o201v56fbl4dz","https://github.com/apache/airflow/commit/1d4fd5c6eacab0b88f8660f9d780174434393f1a","https://github.com/advisories/GHSA-7wqf-h36w-47mc"],"source_kind":"github","identifiers":["GHSA-7wqf-h36w-47mc","CVE-2022-38649"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.3.0","vulnerable_version_range":"\u003c 2.3.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:11:48.832Z","updated_at":"2024-03-06T22:53:39.000Z","epss_percentage":0.01757,"epss_percentile":0.81669},{"uuid":"GSA_kwCzR0hTQS1ydjI1LTl3Z2oteGc3Nc4AAWPs","url":"https://github.com/advisories/GHSA-rv25-9wgj-xg75","title":"Apache Airflow Reflected Cross-site Scripting vulnerability in 404 Endpoint","description":"It was noticed an XSS in certain 404 pages that could be exploited to perform an XSS attack. Chrome will detect this as a reflected XSS attempt and prevent the page from loading. However Firefox and other browsers don't, and are vulnerable to this attack. Mitigation: The fix for this is to upgrade to Apache Airflow 1.9.0 or above.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2022-05-14T02:57:27.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2017-12614","https://lists.apache.org/thread.html/2c72480c76619c5e7793f0d213c34082f0598eaa4d212172f068940f@%3Cdev.airflow.apache.org%3E","https://github.com/apache/airflow/commit/e1a2d74c0045c9231f7a5365c956b8e048dd6af3","https://devhub.checkmarx.com/cve-details/cve-2017-12614","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2018-45.yaml","https://github.com/advisories/GHSA-rv25-9wgj-xg75"],"source_kind":"github","identifiers":["GHSA-rv25-9wgj-xg75","CVE-2017-12614"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.914690376663945,"packages":[{"versions":[{"first_patched_version":"1.9.0","vulnerable_version_range":"\u003c 1.9.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-02-23T21:05:04.168Z","updated_at":"2024-09-10T21:49:46.000Z","epss_percentage":0.02255,"epss_percentile":0.83612},{"uuid":"GSA_kwCzR0hTQS01MmdtLXFtZzMtcjRxcM4AA8CD","url":"https://github.com/advisories/GHSA-52gm-qmg3-r4qp","title":"Apache Airflow: XSS vulnerability in Task Instance Log/Log Details","description":"Apache Airflow version 2.9.0 has a vulnerability that allows an authenticated attacker to inject malicious data into the task instance logs. \nUsers are recommended to upgrade to version 2.9.1, which fixes this issue.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-05-14T18:31:00.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2024-32077","https://github.com/apache/airflow/pull/38882","https://lists.apache.org/thread/gsjmnrqb3m5fzp0vgpty1jxcywo91v77","https://github.com/apache/airflow/commit/87acf61f574daf47ce9e03a986e352a2c727f4ce","http://www.openwall.com/lists/oss-security/2024/05/14/1","https://github.com/advisories/GHSA-52gm-qmg3-r4qp"],"source_kind":"github","identifiers":["GHSA-52gm-qmg3-r4qp","CVE-2024-32077"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.9.1","vulnerable_version_range":"= 2.9.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-05-24T06:05:29.081Z","updated_at":"2025-02-13T18:59:35.000Z","epss_percentage":0.00546,"epss_percentile":0.66655},{"uuid":"GSA_kwCzR0hTQS12bTVtLXFtcngtZnc4d84AA4qc","url":"https://github.com/advisories/GHSA-vm5m-qmrx-fw8w","title":"Apache Airflow: Bypass permission verification to read code of other dags","description":"Apache Airflow, versions before 2.8.1, have a vulnerability that allows an authenticated user to access the source code of a DAG to which they don't have access. This vulnerability is considered low since it requires an authenticated user to exploit it. Users are recommended to upgrade to version 2.8.1, which fixes this issue.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2024-01-24T15:30:30.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-50944","https://github.com/apache/airflow/pull/36257","https://lists.apache.org/thread/92krb5mpcq8qrw4t4j5oooqw7hgd8q7h","http://www.openwall.com/lists/oss-security/2024/01/24/5","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2024-14.yaml","https://github.com/apache/airflow/commit/8d76538d6e105947272b000581c6fabec20146b1","https://github.com/advisories/GHSA-vm5m-qmrx-fw8w"],"source_kind":"github","identifiers":["GHSA-vm5m-qmrx-fw8w","CVE-2023-50944"],"repository_url":"https://github.com/apache/airflow","blast_radius":22.659302202700754,"packages":[{"versions":[{"first_patched_version":"2.8.1rc1","vulnerable_version_range":"\u003e= 0, \u003c 2.8.1rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-01-24T22:06:05.412Z","updated_at":"2025-02-13T19:33:14.000Z","epss_percentage":0.0008,"epss_percentile":0.24804},{"uuid":"GSA_kwCzR0hTQS1mOWZxLTc4Y2gtNHdtas4AAvr3","url":"https://github.com/advisories/GHSA-f9fq-78ch-4wmj","title":"Apache Airflow Open Redirect vulnerability","description":"In Apache Airflow versions prior to 2.4.2, there was an open redirect in the webserver's `/confirm` endpoint.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2022-11-02T19:00:32.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2022-43985","https://github.com/apache/airflow/pull/27143","https://lists.apache.org/thread/m13y9s5kw92fw9l8j4qd85h0txp4kfcq","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2022-42971.yaml","https://github.com/apache/airflow/commit/9fb4814d29d934cef3b02fb3b2547f9fb76aaa97","https://github.com/advisories/GHSA-f9fq-78ch-4wmj"],"source_kind":"github","identifiers":["GHSA-f9fq-78ch-4wmj","CVE-2022-43985"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.914690376663945,"packages":[{"versions":[{"first_patched_version":"2.4.2rc1","vulnerable_version_range":"\u003c 2.4.2rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:11:53.360Z","updated_at":"2024-09-11T21:14:42.000Z","epss_percentage":0.00417,"epss_percentile":0.60829},{"uuid":"GSA_kwCzR0hTQS02djZ3LWg4bTYtN212Ms4AA5qK","url":"https://github.com/advisories/GHSA-6v6w-h8m6-7mv2","title":"Apache Airflow: DAG Code and Import Error Permissions Ignored","description":"Apache Airflow, versions before 2.8.2, has a vulnerability that allows authenticated users to view DAG code and import errors of DAGs they do not have permission to view through the API and the UI.\n\nUsers of Apache Airflow are recommended to upgrade to version 2.8.2 or newer to mitigate the risk associated with this vulnerability","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-02-29T12:31:06.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.1,"cvss_vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2024-27906","https://github.com/apache/airflow/pull/37290","https://github.com/apache/airflow/pull/37468","https://lists.apache.org/thread/on4f7t5sqr3vfgp1pvkck79wv7mq9st5","http://www.openwall.com/lists/oss-security/2024/02/29/1","https://github.com/apache/airflow/commit/08d25607abe8593ecb90a84e338896bb79692d7b","https://github.com/apache/airflow/commit/0a95299691e2d6a9b874adfae94d246a7f681ec9","https://github.com/apache/airflow/commit/2adbe882e68df0e2b1084bc869616bb01e416aa7","https://github.com/apache/airflow/commit/2cb6027280bcf5e2b561f3ee7f55980f6ec4cc3a","https://github.com/apache/airflow/commit/90255d9d44a649025f588497f6c82177dad48326","https://github.com/apache/airflow/commit/9c4defa08268322b9db80123a22d7b56b2063446","https://github.com/apache/airflow/commit/a7fa258ba1c69a18e0f620499625f6026768dc24","https://github.com/apache/airflow/commit/bc2646be043f71b4d1ab7eefd2af65a60bf919f2","https://github.com/apache/airflow/commit/d944eb0de216d9e1d125fae5ce4af7440154deb4","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2024-245.yaml","https://github.com/advisories/GHSA-6v6w-h8m6-7mv2"],"source_kind":"github","identifiers":["GHSA-6v6w-h8m6-7mv2","CVE-2024-27906"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.276400173770966,"packages":[{"versions":[{"first_patched_version":"2.8.2","vulnerable_version_range":"\u003c= 2.8.1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-03-01T00:04:50.166Z","updated_at":"2025-05-06T18:00:52.000Z","epss_percentage":0.00042,"epss_percentile":0.12253},{"uuid":"GSA_kwCzR0hTQS05eHBqLTYybW0tMjRoMs4AA9GF","url":"https://github.com/advisories/GHSA-9xpj-62mm-24h2","title":"Apache Airflow does not return the \"Cache-Control\" header for dynamic content","description":"Use of Web Browser Cache Containing Sensitive Information vulnerability in Apache Airflow. \n\nAirflow did not return \"Cache-Control\" header for dynamic content, which in case of some browsers could result in potentially storing sensitive data in local cache of the browser.\n\nThis issue affects Apache Airflow: before 2.9.2.\n\nUsers are recommended to upgrade to version 2.9.2, which fixes the issue.\n\n","origin":"UNSPECIFIED","severity":"LOW","published_at":"2024-06-14T09:31:17.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2024-25142","https://github.com/apache/airflow/pull/39550","https://lists.apache.org/thread/cg1j28lk0fhzthk0of1g7vy7p2n1j7nr","https://github.com/apache/airflow/commit/94eb647de692a4d9555b02dce85974da5d4c04e3","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2024-195.yaml","http://www.openwall.com/lists/oss-security/2024/06/13/1","https://github.com/advisories/GHSA-9xpj-62mm-24h2"],"source_kind":"github","identifiers":["GHSA-9xpj-62mm-24h2","CVE-2024-25142"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.9.2","vulnerable_version_range":"\u003c 2.9.2"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-06-17T22:05:36.831Z","updated_at":"2025-01-21T17:57:47.000Z","epss_percentage":0.00059,"epss_percentile":0.18565},{"uuid":"GSA_kwCzR0hTQS01cnA0LTc0OXAtdngyNs4AAu_Y","url":"https://github.com/advisories/GHSA-5rp4-749p-vx26","title":"Apache Airflow vulnerable to Use of Externally-Controlled Format String","description":"In Apache Airflow 2.3.0 through 2.3.4, part of a url was unnecessarily formatted, allowing for possible information extraction.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2022-09-22T22:40:27.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2022-40604","https://github.com/apache/airflow/pull/26337","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2022-279.yaml","https://lists.apache.org/thread/z20x8m16fnhxdkoollv53w1ybsts687t","https://github.com/apache/airflow/commit/18386026c28939fa6d91d198c5489c295a05dcd2","https://github.com/apache/airflow/commit/6f24836e5ee56c452947aa87f84a21dd4f8eb87c","https://github.com/advisories/GHSA-5rp4-749p-vx26"],"source_kind":"github","identifiers":["GHSA-5rp4-749p-vx26","CVE-2022-40604"],"repository_url":"https://github.com/apache/airflow","blast_radius":27.765623825844585,"packages":[{"versions":[{"first_patched_version":"2.4.0rc1","vulnerable_version_range":"\u003e= 2.3.0, \u003c 2.4.0rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:11:57.317Z","updated_at":"2024-09-11T18:30:26.000Z","epss_percentage":0.00404,"epss_percentile":0.60033},{"uuid":"GSA_kwCzR0hTQS1mdncyLTJwZjctNzd2d84AAv2h","url":"https://github.com/advisories/GHSA-fvw2-2pf7-77vw","title":"Apache Airflow subject to Exposure of Sensitive Information","description":"A vulnerability in UI of Apache Airflow allows an attacker to view unmasked secrets in rendered template values for tasks which were not executed (for example when they were depending on past and previous instances of the task failed). This issue affects Apache Airflow prior to 2.3.1.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2022-11-14T12:00:15.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2022-27949","https://github.com/apache/airflow/pull/22754","https://lists.apache.org/thread/n38oc5obb48600fsvnbopxcs0jpbp65p","http://www.openwall.com/lists/oss-security/2022/11/14/3","https://github.com/apache/airflow/commit/09be0c5c7e847dda1d0be5776f8d5e327ff2281a","https://github.com/apache/airflow/commit/1cbb0ad26dd17f218c6ab1c2ae59b262c443a443","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2022-42981.yaml","https://github.com/advisories/GHSA-fvw2-2pf7-77vw"],"source_kind":"github","identifiers":["GHSA-fvw2-2pf7-77vw","CVE-2022-27949"],"repository_url":"https://github.com/apache/airflow","blast_radius":27.765623825844585,"packages":[{"versions":[{"first_patched_version":"2.3.1","vulnerable_version_range":"\u003c 2.3.1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:11:50.290Z","updated_at":"2024-09-11T19:38:55.000Z","epss_percentage":0.00163,"epss_percentile":0.38379},{"uuid":"GSA_kwCzR0hTQS0zaDRtLW01NXYtZ3g0bc4AA0pL","url":"https://github.com/advisories/GHSA-3h4m-m55v-gx4m","title":"Apache Airflow Improper Input Validation vulnerability","description":"Apache Airflow, versions before 2.6.3, has a vulnerability where an authenticated user can use crafted input to make the current request hang. It is recommended to upgrade to a version that is not affected","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2023-07-12T12:31:36.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-36543","https://github.com/apache/airflow/pull/32060","https://lists.apache.org/thread/tokfs980504ylgk3cv3hjlnrtbv4tng4","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-106.yaml","https://github.com/apache/airflow/commit/116e607ddcb32480e57c342f48226545ac6fc315","https://github.com/advisories/GHSA-3h4m-m55v-gx4m"],"source_kind":"github","identifiers":["GHSA-3h4m-m55v-gx4m","CVE-2023-36543"],"repository_url":"https://github.com/apache/airflow","blast_radius":22.659302202700754,"packages":[{"versions":[{"first_patched_version":"2.6.3","vulnerable_version_range":"\u003c 2.6.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-07-12T18:04:03.787Z","updated_at":"2024-11-18T16:26:31.000Z","epss_percentage":0.00531,"epss_percentile":0.65986},{"uuid":"GSA_kwCzR0hTQS1jMzkyLXdocGMtdmZwcs4AA_Wx","url":"https://github.com/advisories/GHSA-c392-whpc-vfpr","title":"Apache Airflow vulnerable to Improper Encoding or Escaping of Output","description":"Example DAG: example_inlet_event_extra.py shipped with Apache Airflow version 2.10.0 has a vulnerability that allows an authenticated attacker with only DAG trigger permission to execute arbitrary commands. If you used that example as the base of your DAGs - please review if you have not copied the dangerous example; see  https://github.com/apache/airflow/pull/41873  for more information. We recommend against exposing the example DAGs in your deployment. If you must expose the example DAGs, upgrade Airflow to version 2.10.1 or later.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2024-09-07T09:30:31.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2024-45498","https://github.com/apache/airflow/pull/41873","https://lists.apache.org/thread/tl7lzczcqdmqj2pcpbvtjdpd2tb9561n","https://github.com/apache/airflow/commit/09ec2616568f8a18e0d5fe408110fae06ddf748f","https://www.openwall.com/lists/oss-security/2024/09/06/2","https://github.com/advisories/GHSA-c392-whpc-vfpr"],"source_kind":"github","identifiers":["GHSA-c392-whpc-vfpr","CVE-2024-45498"],"repository_url":"https://github.com/apache/airflow","blast_radius":27.765623825844585,"packages":[{"versions":[{"first_patched_version":"2.10.1","vulnerable_version_range":"= 2.10.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-09-09T19:06:22.249Z","updated_at":"2025-06-04T21:16:03.000Z","epss_percentage":0.0115,"epss_percentile":0.77467},{"uuid":"GSA_kwCzR0hTQS1qODU3LTJwd20tamptbc4ABBF-","url":"https://github.com/advisories/GHSA-j857-2pwm-jjmm","title":"Apache Airflow vulnerable to Insertion of Sensitive Information Into Sent Data","description":"Airflow versions before 2.10.3 have a vulnerability that allows authenticated users with audit log access to see sensitive values in audit logs which they should not see. When sensitive variables were set via airflow CLI, values of those variables appeared in the audit log and were stored unencrypted in the Airflow database. While this risk is limited to users with audit log access, it is recommended to upgrade to Airflow 2.10.3 or a later version, which addresses this issue. Users who previously used the CLI to set secret variables should manually delete entries with those variables from the log table.","origin":"UNSPECIFIED","severity":"LOW","published_at":"2024-11-08T15:31:12.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":2.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:U","references":["https://nvd.nist.gov/vuln/detail/CVE-2024-50378","https://github.com/apache/airflow/pull/43123","https://lists.apache.org/thread/17rxys384lzfd6nhm3fztzgvk47zy7jb","https://github.com/advisories/GHSA-j857-2pwm-jjmm"],"source_kind":"github","identifiers":["GHSA-j857-2pwm-jjmm","CVE-2024-50378"],"repository_url":"https://github.com/apache/airflow","blast_radius":7.340337333269258,"packages":[{"versions":[{"first_patched_version":"2.10.3","vulnerable_version_range":"\u003c 2.10.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-11-08T19:06:34.969Z","updated_at":"2024-11-08T18:23:52.000Z","epss_percentage":0.00091,"epss_percentile":0.27111},{"uuid":"GSA_kwCzR0hTQS00NXI2LWozY2MtNm14eM4AAwAC","url":"https://github.com/advisories/GHSA-45r6-j3cc-6mxx","title":"OS Command Injection in Apache Airflow","description":"Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') vulnerability in Apache Airflow Spark Provider, Apache Airflow allows an attacker to read arbtrary files in the task execution context, without write access to DAG files. This issue affects Spark Provider versions prior to 4.0.0. It also impacts any Apache Airflow versions prior to 2.3.0 in case Spark Provider is installed (Spark Provider 4.0.0 can only be installed for Airflow 2.3.0+). Note that you need to manually install the Spark Provider version 4.0.0 in order to get rid of the vulnerability on top of Airflow 2.3.0+ version that has lower version of the Spark Provider installed).","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2022-11-22T12:30:22.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2022-40954","https://github.com/apache/airflow/pull/27646","https://lists.apache.org/thread/0tmdlnmjs5t4gsx5fy73tb6zd3jztq45","https://github.com/advisories/GHSA-45r6-j3cc-6mxx"],"source_kind":"github","identifiers":["GHSA-45r6-j3cc-6mxx","CVE-2022-40954"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.3.0","vulnerable_version_range":"\u003c 2.3.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:11:48.816Z","updated_at":"2023-08-17T05:02:21.000Z","epss_percentage":0.00445,"epss_percentile":0.6241},{"uuid":"GSA_kwCzR0hTQS1yZzk0LTg0eGotN2dxM84AAv3Z","url":"https://github.com/advisories/GHSA-rg94-84xj-7gq3","title":"Apache Airflow Contains Open Redirect","description":"In Apache Airflow versions prior to 2.4.3, there was an open redirect in the webserver's `/login` endpoint.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2022-11-15T12:00:15.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2022-45402","https://github.com/apache/airflow/pull/27576","https://lists.apache.org/thread/nf4xrkoo6c81g6fdn4vj8k9x2686o9nh","http://www.openwall.com/lists/oss-security/2022/11/15/1","https://github.com/apache/airflow/commit/f0f67e8bc9dcb9444cfc5b88ee075191785469b7","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2022-42984.yaml","https://github.com/advisories/GHSA-rg94-84xj-7gq3"],"source_kind":"github","identifiers":["GHSA-rg94-84xj-7gq3","CVE-2022-45402"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.4.3","vulnerable_version_range":"\u003c 2.4.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:11:50.167Z","updated_at":"2024-09-03T21:15:05.000Z","epss_percentage":0.0841,"epss_percentile":0.91848},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTdteDUteDM3Mi14aDg3","url":"https://github.com/advisories/GHSA-7mx5-x372-xh87","title":"Incorrect Session Validation in Apache Airflow","description":"Incorrect Session Validation in Apache Airflow Webserver versions prior to 1.10.14 with default config allows a malicious airflow user on site A where they log in normally, to access unauthorized Airflow Webserver on Site B through the session from Site A. This does not affect users who have changed the default value for `[webserver] secret_key` config.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2021-04-20T16:40:27.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2020-17526","https://lists.apache.org/thread.html/rbeeb73a6c741f2f9200d83b9c2220610da314810c4e8c9cf881d47ef%40%3Cusers.airflow.apache.org%3E","http://www.openwall.com/lists/oss-security/2020/12/21/1","https://lists.apache.org/thread.html/r466759f377651f0a690475d5a52564d0e786e82c08d5a5730a4f8352@%3Cannounce.apache.org%3E","https://github.com/apache/airflow/commit/97b2735d65e95c4633966667b6db3908540f3937","https://github.com/apache/airflow/commit/9e01476a50b9be27c4b1e6c6e24d36f290629195","https://github.com/apache/airflow/commit/dfa7b26ddaca80ee8fd9915ee9f6eac50fac77f6","https://github.com/apache/airflow/commit/fe6d00a54f83468e296777d3b83b65a2ae7169ec","https://github.com/apache/airflow/commit/2f3b1c780472afd4c8a93633e6633feb7083792e","https://github.com/apache/airflow/commit/6b065840323f9a4fc8e372b458d26e419e4fa99b","https://github.com/apache/airflow/commit/a8900fa5f2b8963e9f57ba4ae5520a5d339aeaad","https://github.com/advisories/GHSA-7mx5-x372-xh87","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2020-22.yaml"],"source_kind":"github","identifiers":["GHSA-7mx5-x372-xh87","CVE-2020-17526"],"repository_url":"https://github.com/apache/airflow","blast_radius":26.489043420058632,"packages":[{"versions":[{"first_patched_version":"1.10.14","vulnerable_version_range":"\u003c 1.10.14"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:07.992Z","updated_at":"2024-09-11T21:25:19.000Z","epss_percentage":0.90407,"epss_percentile":0.99573},{"uuid":"GSA_kwCzR0hTQS00amgyLTNjODUtcTY3aM0llQ","url":"https://github.com/advisories/GHSA-4jh2-3c85-q67h","title":"Improper Privilege Management in apache-airflow","description":"In Apache Airflow prior to 2.2.0. This CVE applies to a specific case where a User who has \"can_create\" permissions on DAG Runs can create Dag Runs for dags that they don't have \"edit\" permissions for.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2022-01-28T21:55:34.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2021-45230","https://lists.apache.org/thread/m778ojn0k595rwco4ht9wjql89mjoxnl","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2022-11.yaml","https://github.com/advisories/GHSA-4jh2-3c85-q67h"],"source_kind":"github","identifiers":["GHSA-4jh2-3c85-q67h","CVE-2021-45230"],"repository_url":null,"blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.2.0","vulnerable_version_range":"\u003c 2.2.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:12:37.608Z","updated_at":"2024-09-03T21:38:44.000Z","epss_percentage":0.02047,"epss_percentile":0.82783},{"uuid":"GSA_kwCzR0hTQS05cXFnLW1oN2MtY2hmcc4AA2oC","url":"https://github.com/advisories/GHSA-9qqg-mh7c-chfq","title":"Apache Airflow vulnerable to Exposure of Sensitive Information","description":"Exposure of Sensitive Information to an Unauthorized Actor vulnerability in Apache Airflow. This issue affects Apache Airflow from 2.4.0 to 2.7.0.\n\nSensitive configuration information has been exposed to authenticated users with the ability to read configuration via Airflow REST API for configuration even when the expose_config option is set to non-sensitive-only. The expose_config option is False by default. It is recommended to upgrade to a version that is not affected if you set expose_config to non-sensitive-only configuration. This is a different error than CVE-2023-45348 which allows authenticated user to retrieve individual configuration values in 2.7.* by specially crafting their request (solved in 2.7.2).\n\nUsers are recommended to upgrade to version 2.7.2, which fixes the issue and additionally fixes CVE-2023-45348.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-10-23T21:30:58.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-46288","https://github.com/apache/airflow/pull/32261","https://lists.apache.org/thread/yw4vzm0c5lqkwm0bxv6qy03yfd1od4nw","https://github.com/apache/airflow/commit/4a525e85e31b26d413c986c86d181114bb37bd06","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-218.yaml","http://www.openwall.com/lists/oss-security/2024/04/17/10","https://github.com/advisories/GHSA-9qqg-mh7c-chfq"],"source_kind":"github","identifiers":["GHSA-9qqg-mh7c-chfq","CVE-2023-46288"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.914690376663945,"packages":[{"versions":[{"first_patched_version":"2.7.2","vulnerable_version_range":"\u003e= 2.4.0, \u003c 2.7.2"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-10-24T03:05:48.060Z","updated_at":"2024-09-11T19:38:18.000Z","epss_percentage":0.00259,"epss_percentile":0.49211},{"uuid":"GSA_kwCzR0hTQS1mcHh4LXh2NGMtZ3hxcM4AA2cj","url":"https://github.com/advisories/GHSA-fpxx-xv4c-gxqp","title":"Apache Airflow vulnerable to sensitive information exposure when expose-config is set to non-sensitive-only","description":"Apache Airflow, versions 2.7.0 and 2.7.1, is affected by a vulnerability that allows an authenticated user to retrieve sensitive configuration information when the `expose_config` option is set to `non-sensitive-only`. The `expose_config` option is `False` by default. It is recommended to upgrade to a version that is not affected.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-10-14T12:30:23.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2023-45348","https://github.com/apache/airflow/pull/34712","https://lists.apache.org/thread/sy4l5d6tn58hr8r61r2fkt1f0qock9z9","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-204.yaml","http://www.openwall.com/lists/oss-security/2023/10/23/2","https://github.com/apache/airflow/commit/a4a0b5dd3d0ce05311c70bb9a32b66a650dbc0b4","https://github.com/advisories/GHSA-fpxx-xv4c-gxqp"],"source_kind":"github","identifiers":["GHSA-fpxx-xv4c-gxqp","CVE-2023-45348"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.7.2","vulnerable_version_range":"\u003e= 2.7.0, \u003c 2.7.2"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-10-17T03:05:47.861Z","updated_at":"2024-03-06T23:47:02.000Z","epss_percentage":0.00212,"epss_percentile":0.44115},{"uuid":"GSA_kwCzR0hTQS1qM3c4LTJwMmgtbXJyOc4AA2ci","url":"https://github.com/advisories/GHSA-j3w8-2p2h-mrr9","title":"Apache Airflow vulnerable to privilege escalation","description":"Apache Airflow, in versions prior to 2.7.2, contains a security vulnerability that allows an authenticated user with limited access to some DAGs, to craft a request that could give the user write access to various DAG resources for DAGs that the user had no access to, thus, enabling the user to clear DAGs they shouldn't.\n\nUsers of Apache Airflow are strongly advised to upgrade to version 2.7.2 or newer to mitigate the risk associated with this vulnerability.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-10-14T12:30:23.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2023-42792","https://github.com/apache/airflow/pull/34366","https://lists.apache.org/thread/1spbo9nkn49fc2hnxqm9tf6mgqwp9tjq","http://www.openwall.com/lists/oss-security/2023/12/21/1","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-203.yaml","https://github.com/advisories/GHSA-j3w8-2p2h-mrr9"],"source_kind":"github","identifiers":["GHSA-j3w8-2p2h-mrr9","CVE-2023-42792"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.7.2","vulnerable_version_range":"\u003c 2.7.2"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-10-17T03:05:47.875Z","updated_at":"2024-09-03T21:34:02.000Z","epss_percentage":0.00313,"epss_percentile":0.53899},{"uuid":"GSA_kwCzR0hTQS0zMndyLXFxdzYtNW1mcM4AA2cg","url":"https://github.com/advisories/GHSA-32wr-qqw6-5mfp","title":"Apache Airflow vulnerable to sensitive information exposure","description":"Apache Airflow, versions before 2.7.2, has a vulnerability that allows an authorized user with access to read specific DAGs _only_ to read information about task instances in other DAGs. Users of Apache Airflow are advised to upgrade to version 2.7.2 or newer to mitigate the risk associated with this vulnerability.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-10-14T12:30:23.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2023-42663","https://github.com/apache/airflow/pull/34315","https://lists.apache.org/thread/xj86cvfkxgd0cyqfmz6mh1bsfc61c6o9","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-197.yaml","http://www.openwall.com/lists/oss-security/2023/11/12/2","https://github.com/advisories/GHSA-32wr-qqw6-5mfp"],"source_kind":"github","identifiers":["GHSA-32wr-qqw6-5mfp","CVE-2023-42663"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.7.2","vulnerable_version_range":"\u003e= 0, \u003c 2.7.2"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-10-17T03:05:47.903Z","updated_at":"2025-02-13T19:18:25.000Z","epss_percentage":0.00215,"epss_percentile":0.44344},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWhoeDktcDY5di1jeDJq","url":"https://github.com/advisories/GHSA-hhx9-p69v-cx2j","title":"Authentication bypass in Apache Airflow","description":"The previous default setting for Airflow's Experimental API was to allow all API requests without authentication, but this poses security risks to users who miss this fact. From Airflow 1.10.11 the default has been changed to deny all requests by default and is documented at https://airflow.apache.org/docs/1.10.11/security.html#api-authentication. Note this change fixes it for new installs but existing users need to change their config to default `[api]auth_backend = airflow.api.auth.backend.deny_all` as mentioned in the Updating Guide: https://github.com/apache/airflow/blob/1.10.11/UPDATING.md#experimental-api-will-deny-all-request-by-default","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2021-04-30T17:34:13.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2020-13927","https://airflow.apache.org/docs/apache-airflow/1.10.11/security.html#api-authentication","https://github.com/apache/airflow/releases/tag/1.10.11","https://lists.apache.org/thread.html/r23a81b247aa346ff193670be565b2b8ea4b17ddbc7a35fc099c1aadd%40%3Cdev.airflow.apache.org%3E","http://packetstormsecurity.com/files/162908/Apache-Airflow-1.10.10-Remote-Code-Execution.html","http://packetstormsecurity.com/files/174764/Apache-Airflow-1.10.10-Remote-Code-Execution.html","https://github.com/apache/airflow/commit/180bca4f993b7b778a8d2c65d3d357652218922b","https://github.com/apache/airflow/commit/9e305d6b810a2a21e2591a80a80ec41acb3afed0","https://github.com/apache/airflow/pull/9611","https://github.com/advisories/GHSA-hhx9-p69v-cx2j","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2020-18.yaml"],"source_kind":"github","identifiers":["GHSA-hhx9-p69v-cx2j","CVE-2020-13927"],"repository_url":"https://github.com/apache/airflow","blast_radius":29.680494434523528,"packages":[{"versions":[{"first_patched_version":"1.10.11","vulnerable_version_range":"\u003c 1.10.11"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:06.780Z","updated_at":"2024-09-11T16:57:40.000Z","epss_percentage":0.941,"epss_percentile":0.99892},{"uuid":"GSA_kwCzR0hTQS1oNjNyLTl4eGYtZjJjN84AAvr2","url":"https://github.com/advisories/GHSA-h63r-9xxf-f2c7","title":"Apache Airflow Cross-site Scripting vulnerability","description":"In Apache Airflow versions prior to 2.4.2, the \"Trigger DAG with config\" screen was susceptible to XSS attacks via the `origin` query argument.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2022-11-02T19:00:33.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2022-43982","https://github.com/apache/airflow/pull/27143","https://lists.apache.org/thread/vqnvdrfsw9z7v7c46qh3psjgr7wy959l","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2022-42970.yaml","https://github.com/apache/airflow/commit/9fb4814d29d934cef3b02fb3b2547f9fb76aaa97","https://github.com/advisories/GHSA-h63r-9xxf-f2c7"],"source_kind":"github","identifiers":["GHSA-h63r-9xxf-f2c7","CVE-2022-43982"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.914690376663945,"packages":[{"versions":[{"first_patched_version":"2.4.2rc1","vulnerable_version_range":"\u003c 2.4.2rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:11:53.353Z","updated_at":"2024-09-11T19:49:45.000Z","epss_percentage":0.00843,"epss_percentile":0.73651},{"uuid":"GSA_kwCzR0hTQS1oNTc0LTY2NDYtdmZ4eM4AA6AB","url":"https://github.com/advisories/GHSA-h574-6646-vfxx","title":"Apache Airflow: Ignored Airflow Permission","description":"Apache Airflow, versions 2.8.0 through 2.8.2, has a vulnerability that allows an authenticated user with limited permissions to access resources such as variables, connections, etc from the UI which they do not have permission to access. \n\nUsers of Apache Airflow are recommended to upgrade to version 2.8.3 or newer to mitigate the risk associated with this vulnerability\n","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-03-14T09:31:05.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2024-28746","https://github.com/apache/airflow/pull/37881","https://lists.apache.org/thread/b4pffc7w7do6qgk4jjbyxvdz5odrvny7","https://github.com/apache/airflow/commit/89e7f3e7bdf2126bbbcd959dc10d65ef92773cca","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2024-46.yaml","http://www.openwall.com/lists/oss-security/2024/03/13/5","https://github.com/advisories/GHSA-h574-6646-vfxx"],"source_kind":"github","identifiers":["GHSA-h574-6646-vfxx","CVE-2024-28746"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.8.3rc1","vulnerable_version_range":"\u003e= 2.8.0, \u003c 2.8.3rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-03-21T20:04:43.217Z","updated_at":"2024-05-02T19:01:56.000Z","epss_percentage":0.00051,"epss_percentile":0.16026},{"uuid":"GSA_kwCzR0hTQS02NXh3LXBjcXctaGpyaM0vEA","url":"https://github.com/advisories/GHSA-65xw-pcqw-hjrh","title":"Apache Airflow Cross-site Scripting Vulnerability","description":"It was discovered that the \"Trigger DAG with config\" screen was susceptible to XSS attacks via the `origin` query argument. This issue affects Apache Airflow versions 2.2.3 and below.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2022-02-26T00:00:45.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2021-45229","https://lists.apache.org/thread/phx76cgtmhwwdy780rvwhobx8qoy4bnk","https://github.com/apache/airflow/commit/628aa1f99c865d97d0b1c7c76e630e43a7b8d319","https://github.com/advisories/GHSA-65xw-pcqw-hjrh","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2022-29.yaml"],"source_kind":"github","identifiers":["GHSA-65xw-pcqw-hjrh","CVE-2021-45229"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.914690376663945,"packages":[{"versions":[{"first_patched_version":"2.2.4rc1","vulnerable_version_range":"\u003e= 0, \u003c 2.2.4rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:12:34.827Z","updated_at":"2024-09-12T19:18:01.000Z","epss_percentage":0.04716,"epss_percentile":0.88817},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWozOGMtMjVmai1tcjg0","url":"https://github.com/advisories/GHSA-j38c-25fj-mr84","title":"Stored XSS in Apache Airflow","description":"An issue was found in Apache Airflow versions 1.10.10 and below. A stored XSS vulnerability was discovered in the Chart pages of the the \"classic\" UI.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2020-07-27T16:57:34.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2020-9485","https://lists.apache.org/thread.html/r7255cf0be3566f23a768e2a04b40fb09e52fcd1872695428ba9afe91%40%3Cusers.airflow.apache.org%3E","https://github.com/advisories/GHSA-j38c-25fj-mr84","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2020-23.yaml"],"source_kind":"github","identifiers":["GHSA-j38c-25fj-mr84","CVE-2020-9485"],"repository_url":null,"blast_radius":16.914690376663945,"packages":[{"versions":[{"first_patched_version":"1.10.11","vulnerable_version_range":"\u003c 1.10.11"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:23.436Z","updated_at":"2024-09-11T21:12:52.000Z","epss_percentage":0.02134,"epss_percentile":0.82638},{"uuid":"GSA_kwCzR0hTQS14dnc5LTNtaG0teGpxcc4AA0pJ","url":"https://github.com/advisories/GHSA-xvw9-3mhm-xjqq","title":"Apache Airflow information disclosure vulnerability","description":"Apache Airflow, versions before 2.6.3, is affected by a vulnerability that allows an unauthorized actor to gain access to sensitive information in Connection edit view. This vulnerability is considered low since it requires someone with access to Connection resources specifically updating the connection to exploit it. Users should upgrade to version 2.6.3 or later which has removed the vulnerability.\n","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2023-07-12T12:31:35.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2022-46651","https://github.com/apache/airflow/pull/32309","https://lists.apache.org/thread/n45h3y82og125rnlgt6rbm9szfb6q24d","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-103.yaml","https://github.com/apache/airflow/commit/d01248382fe45a5f5a7fdeed4082a80c5f814ad8","https://github.com/advisories/GHSA-xvw9-3mhm-xjqq"],"source_kind":"github","identifiers":["GHSA-xvw9-3mhm-xjqq","CVE-2022-46651"],"repository_url":"https://github.com/apache/airflow","blast_radius":22.659302202700754,"packages":[{"versions":[{"first_patched_version":"2.6.3","vulnerable_version_range":"\u003c 2.6.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-07-12T18:04:03.937Z","updated_at":"2024-11-18T16:26:31.000Z","epss_percentage":0.00109,"epss_percentile":0.30469},{"uuid":"GSA_kwCzR0hTQS01ZmY4LTc2MzktNnY2Z84AAum7","url":"https://github.com/advisories/GHSA-5ff8-7639-6v6g","title":"Apache Airflow Session Fixation vulnerability","description":"In Apache Airflow versions 2.2.4 through 2.3.3, the `database` webserver session backend was susceptible to session fixation.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2022-09-03T00:00:25.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2022-38054","https://lists.apache.org/thread/rsd3h89xdp16rg0ltovx3m7q3ypkxsbb","http://www.openwall.com/lists/oss-security/2022/09/02/1","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2022-263.yaml","https://github.com/advisories/GHSA-5ff8-7639-6v6g"],"source_kind":"github","identifiers":["GHSA-5ff8-7639-6v6g","CVE-2022-38054"],"repository_url":null,"blast_radius":29.680494434523528,"packages":[{"versions":[{"first_patched_version":"2.3.4rc1","vulnerable_version_range":"\u003e= 2.2.4, \u003c 2.3.4rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:11:59.362Z","updated_at":"2024-09-11T20:06:22.000Z","epss_percentage":0.00619,"epss_percentile":0.68905},{"uuid":"GSA_kwCzR0hTQS0zcThyLWYzcGotM2djNM4AAvNL","url":"https://github.com/advisories/GHSA-3q8r-f3pj-3gc4","title":"Apache Airflow may allow authenticated users who have been deactivated to continue using the UI or API","description":"In Apache Airflow, prior to version 2.4.1, deactivating a user wouldn't prevent an already authenticated user from being able to continue using the UI or API.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2022-10-07T18:16:01.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.6,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2022-41672","https://github.com/apache/airflow/pull/26635","https://lists.apache.org/thread/ohf3pvd3dftb8zb01yngbn1jtkq5m08y","https://github.com/apache/airflow/commit/12bfb571a895a28a58d3189b0fc10cfc1b89e24c","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2022-42983.yaml","https://github.com/advisories/GHSA-3q8r-f3pj-3gc4"],"source_kind":"github","identifiers":["GHSA-3q8r-f3pj-3gc4","CVE-2022-41672"],"repository_url":"https://github.com/apache/airflow","blast_radius":27.446478724398098,"packages":[{"versions":[{"first_patched_version":"2.4.1rc1","vulnerable_version_range":"\u003c 2.4.1rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:11:55.744Z","updated_at":"2024-09-11T18:26:18.000Z","epss_percentage":0.00221,"epss_percentile":0.44884},{"uuid":"GSA_kwCzR0hTQS1qNDgyLTQ3eGYtcDI1Y84AA9-G","url":"https://github.com/advisories/GHSA-j482-47xf-p25c","title":"Apache Airflow Potential Cross-site Scripting Vulnerability","description":"Apache Airflow versions before 2.9.3 have a vulnerability that allows an authenticated attacker to inject a malicious link when installing a provider. Users are recommended to upgrade to version 2.9.3, which fixes this issue.\n","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-07-17T09:30:48.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2024-39863","https://github.com/apache/airflow/pull/40475","https://lists.apache.org/thread/gxkvs279f1mbvckv5q65worr6how20o3","https://github.com/apache/airflow/commit/f18f48492dc69f392e45567580b6ddb0c070ea58","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2024-189.yaml","http://www.openwall.com/lists/oss-security/2024/07/16/6","https://github.com/advisories/GHSA-j482-47xf-p25c"],"source_kind":"github","identifiers":["GHSA-j482-47xf-p25c","CVE-2024-39863"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.276400173770966,"packages":[{"versions":[{"first_patched_version":"2.9.3","vulnerable_version_range":"\u003c 2.9.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-07-17T18:05:53.006Z","updated_at":"2025-06-11T01:09:53.496Z","epss_percentage":0.0019,"epss_percentile":0.41502},{"uuid":"GSA_kwCzR0hTQS1jNzMyLXh2djgtZzk0Y84AAxHL","url":"https://github.com/advisories/GHSA-c732-xvv8-g94c","title":"Command Injection in Apache Airflow and Apache Airflow MySQL Provider","description":"Improper Neutralization of Special Elements used in a Command ('Command Injection') vulnerability in Apache Software Foundation Apache Airflow, Apache Software Foundation Apache Airflow MySQL Provider.This issue affects Apache Airflow: before 2.5.1; Apache Airflow MySQL Provider: before 4.0.0.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2023-01-21T15:30:18.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2023-22884","https://github.com/apache/airflow/pull/28811","https://lists.apache.org/thread/0l0j3nt0t7fzrcjl2ch0jgj6c58kxs5h","https://github.com/advisories/GHSA-c732-xvv8-g94c"],"source_kind":"github","identifiers":["GHSA-c732-xvv8-g94c","CVE-2023-22884"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"4.0.0","vulnerable_version_range":"\u003c 4.0.0"}],"ecosystem":"pypi","package_name":"apache-airflow-providers-mysql"},{"versions":[{"first_patched_version":"2.5.1","vulnerable_version_range":"\u003c 2.5.1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-01-31T06:03:08.622Z","updated_at":"2023-02-01T09:17:23.000Z","epss_percentage":0.6394,"epss_percentile":0.98288},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTZyM3AtZmN2bS14aDdj","url":"https://github.com/advisories/GHSA-6r3p-fcvm-xh7c","title":"SSRF vulnerability in Apache Airflow","description":"In Apache Airflow versions prior to 1.10.13, the Charts and Query View of the old (Flask-admin based) UI were vulnerable for SSRF attack.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2020-12-17T21:00:58.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":6.9,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2020-17513","https://lists.apache.org/thread.html/rb3647269f07cc2775ca6568cbfd4994d862c842a58120d2aba9c658a%40%3Cusers.airflow.apache.org%3E","https://github.com/apache/airflow/commit/b606b871226d649913a37fd074eeae5d86ebc3a1","https://github.com/advisories/GHSA-6r3p-fcvm-xh7c","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2020-20.yaml"],"source_kind":"github","identifiers":["GHSA-6r3p-fcvm-xh7c","CVE-2020-17513"],"repository_url":"https://github.com/apache/airflow","blast_radius":22.02101199980778,"packages":[{"versions":[{"first_patched_version":"1.10.13","vulnerable_version_range":"\u003c 1.10.13"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:12.491Z","updated_at":"2024-09-11T21:08:14.000Z","epss_percentage":0.01226,"epss_percentile":0.7815},{"uuid":"GSA_kwCzR0hTQS01OTM4LTc5aGcteGgzcc4AA39c","url":"https://github.com/advisories/GHSA-5938-79hg-xh3q","title":"Apache Airflow Improper Access Control vulnerability","description":"Apache Airflow, versions before 2.8.0, is affected by a vulnerability that allows an authenticated user without the variable edit permission, to update a variable.\nThis flaw compromises the integrity of variable management, potentially leading to unauthorized data modification.\nUsers are recommended to upgrade to 2.8.0, which fixes this issue.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-12-21T12:30:28.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2023-50783","https://github.com/apache/airflow/pull/33932","https://lists.apache.org/thread/rs7cr3yp726mb89s1m844hy9pq7frgcn","https://github.com/apache/airflow/commit/0e1c106d7cd0703125528a691088e42e17c99929","http://www.openwall.com/lists/oss-security/2023/12/21/4","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-267.yaml","https://github.com/advisories/GHSA-5938-79hg-xh3q"],"source_kind":"github","identifiers":["GHSA-5938-79hg-xh3q","CVE-2023-50783"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.8.0","vulnerable_version_range":"\u003c 2.8.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-12-21T19:05:58.967Z","updated_at":"2024-11-21T21:36:42.000Z","epss_percentage":0.00031,"epss_percentile":0.07311},{"uuid":"GSA_kwCzR0hTQS0yaDg0LTNjcnEtdmdmas4AA0pT","url":"https://github.com/advisories/GHSA-2h84-3crq-vgfj","title":"Apache Airflow Incorrect Authorization vulnerability","description":"Apache Airflow, versions before 2.6.3, is affected by a vulnerability that allows unauthorized read access to a DAG through the URL. It is recommended to upgrade to a version that is not affected","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2023-07-12T12:31:36.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-35908","https://github.com/apache/airflow/pull/32014","https://lists.apache.org/thread/vsflptk5dt30vrfggn96nx87d7zr6yvw","https://github.com/apache/airflow/commit/ac65b82eeeeaa670e09a83c7da65cbac7e89f8db","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-119.yaml","https://github.com/apache/airflow/commit/c78e16588ee399f6eaf60425eb1ad7fa6d3fe352","https://github.com/advisories/GHSA-2h84-3crq-vgfj"],"source_kind":"github","identifiers":["GHSA-2h84-3crq-vgfj","CVE-2023-35908"],"repository_url":"https://github.com/apache/airflow","blast_radius":22.659302202700754,"packages":[{"versions":[{"first_patched_version":"2.6.3","vulnerable_version_range":"\u003c 2.6.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-07-12T18:04:03.878Z","updated_at":"2024-11-18T16:26:31.000Z","epss_percentage":0.00138,"epss_percentile":0.34972},{"uuid":"GSA_kwCzR0hTQS13cGc4LW1mNmgtZ205Ms4AA11i","url":"https://github.com/advisories/GHSA-wpg8-mf6h-gm92","title":"Apache Airflow Incorrect Authorization vulnerability","description":"Apache Airflow, versions before 2.7.1, is affected by a vulnerability that allows authenticated and DAG-view authorized Users to modify some DAG run detail values when submitting notes. This could have them alter details such as configuration parameters, start date, etc.\n\nUsers should upgrade to version 2.7.1 or later which has removed the vulnerability.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-09-12T18:58:34.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-40611","https://github.com/apache/airflow/pull/33413","https://github.com/apache/airflow/commit/b7a46c970d638028a4a7643ad000dcee951fb9ef","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-170.yaml","https://lists.apache.org/thread/8y9xk1s3j4qr36yzqn8ogbn9fl7pxrn0","http://www.openwall.com/lists/oss-security/2023/11/12/1","https://github.com/apache/airflow/commit/2a0106e4edf67c5905ebfcb82a6008662ae0f7ad","https://github.com/advisories/GHSA-wpg8-mf6h-gm92"],"source_kind":"github","identifiers":["GHSA-wpg8-mf6h-gm92","CVE-2023-40611"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.914690376663945,"packages":[{"versions":[{"first_patched_version":"2.7.1","vulnerable_version_range":"\u003e= 0, \u003c 2.7.1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-09-12T19:06:05.122Z","updated_at":"2025-02-13T19:11:47.000Z","epss_percentage":0.00092,"epss_percentile":0.273},{"uuid":"GSA_kwCzR0hTQS01ZjM1LXBxMzQtYzg3cc4AA1eK","url":"https://github.com/advisories/GHSA-5f35-pq34-c87q","title":"Apache Airflow missing Certificate Validation","description":"Apache Airflow SMTP Provider before 1.3.0, Apache Airflow IMAP Provider before 3.3.0, and Apache Airflow before 2.7.0 are affected by the Validation of OpenSSL Certificate vulnerability.\n\nThe default SSL context with SSL library did not check a server's X.509 certificate.  Instead, the code accepted any certificate, which could result in the disclosure of mail server credentials or mail contents when the client connects to an attacker in a MITM position.\n\nUsers are strongly advised to upgrade to Apache Airflow version 2.7.0 or newer, Apache Airflow IMAP Provider version 3.3.0 or newer, and Apache Airflow SMTP Provider version 1.3.0 or newer to mitigate the risk associated with this vulnerability","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-08-23T18:30:34.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2023-39441","https://github.com/apache/airflow/pull/33070","https://github.com/apache/airflow/pull/33075","https://github.com/apache/airflow/pull/33108","https://lists.apache.org/thread/xzp4wgjg2b1o6ylk2595df8bstlbo1lb","http://www.openwall.com/lists/oss-security/2023/08/23/2","https://github.com/apache/airflow/commit/38fc9cd823feafd8ec61d5d5c7eddb9e9162f755","https://github.com/apache/airflow/commit/3bd8f020e8b7bdeb7f618bdbdfb3557f117b29d3","https://github.com/apache/airflow/commit/dbacacbd4d476da757de148a4e747924c34fd7fe","https://github.com/advisories/GHSA-5f35-pq34-c87q"],"source_kind":"github","identifiers":["GHSA-5f35-pq34-c87q","CVE-2023-39441"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.7.0","vulnerable_version_range":"\u003c 2.7.0"}],"ecosystem":"pypi","package_name":"apache-airflow"},{"versions":[{"first_patched_version":"3.3.0","vulnerable_version_range":"\u003c 3.3.0"}],"ecosystem":"pypi","package_name":"apache-airflow-providers-imap"},{"versions":[{"first_patched_version":"1.3.0","vulnerable_version_range":"\u003c 1.3.0"}],"ecosystem":"pypi","package_name":"apache-airflow-providers-smtp"}],"created_at":"2023-08-24T13:05:31.216Z","updated_at":"2024-03-06T23:29:25.000Z","epss_percentage":0.0024,"epss_percentile":0.47403},{"uuid":"GSA_kwCzR0hTQS1oNmc1LXdxcXItM213M84AAyIE","url":"https://github.com/advisories/GHSA-h6g5-wqqr-3mw3","title":"Sensitive Information in Error Messages in Apache Airflow","description":"Generation of Error Message Containing Sensitive Information vulnerability in Apache Software Foundation Apache Airflow.This issue affects Apache Airflow: before 2.5.2. The traceback contains information that might be useful for a potential attacker to better target their attack (Python/Airflow version, node name). This information should not be shown if traceback is shown to unauthenticated user.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-03-15T12:30:19.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":6.9,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-25695","https://github.com/apache/airflow/pull/29501","https://lists.apache.org/thread/z8w6ckzs61ql365tv4d19k82o67r15p2","https://github.com/apache/airflow/commit/965e76d9ed00ef354a834739ac46f24068630951","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-2.yaml","https://github.com/advisories/GHSA-h6g5-wqqr-3mw3"],"source_kind":"github","identifiers":["GHSA-h6g5-wqqr-3mw3","CVE-2023-25695"],"repository_url":"https://github.com/apache/airflow","blast_radius":22.02101199980778,"packages":[{"versions":[{"first_patched_version":"2.5.2rc1","vulnerable_version_range":"\u003c 2.5.2rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-03-16T15:03:13.969Z","updated_at":"2024-09-11T20:02:37.000Z","epss_percentage":0.00307,"epss_percentile":0.5335},{"uuid":"GSA_kwCzR0hTQS1nZ3dyLTR2cjgtZzd3ds4AA0pO","url":"https://github.com/advisories/GHSA-ggwr-4vr8-g7wv","title":"Apache Airflow Path Traversal vulnerability","description":"Apache Airflow, versions before 2.6.3, is affected by a vulnerability that allows an attacker to perform unauthorized file access outside the intended directory structure by manipulating the run_id parameter. This vulnerability is considered low since it requires an authenticated user to exploit it. It is recommended to upgrade to a version that is not affected","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2023-07-12T12:31:36.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-22887","https://github.com/apache/airflow/pull/32293","https://lists.apache.org/thread/rxddqs76r6rkxsg1n24d029zys67qwwo","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-104.yaml","https://github.com/apache/airflow/commit/05bd90f563649f2e9c8f0c85cf5838315a665a02","https://github.com/apache/airflow/commit/8ff7dfbd9e76aa40b04adeb231df3820606f5ba3","https://github.com/advisories/GHSA-ggwr-4vr8-g7wv"],"source_kind":"github","identifiers":["GHSA-ggwr-4vr8-g7wv","CVE-2023-22887"],"repository_url":"https://github.com/apache/airflow","blast_radius":22.659302202700754,"packages":[{"versions":[{"first_patched_version":"2.6.3","vulnerable_version_range":"\u003c 2.6.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-07-12T18:04:03.825Z","updated_at":"2024-11-18T16:26:31.000Z","epss_percentage":0.00413,"epss_percentile":0.6059},{"uuid":"GSA_kwCzR0hTQS1wbTg3LTI0d3Etcjh3Oc4AA1eM","url":"https://github.com/advisories/GHSA-pm87-24wq-r8w9","title":"Apache Airflow Session Fixation vulnerability","description":"The session fixation vulnerability allowed the authenticated user to continue accessing Airflow webserver even after the password of the user has been reset by the admin - up until the expiry of the session of the user. Other than manually cleaning the session database (for database session backend), or changing the secure_key and restarting the webserver, there were no mechanisms to force-logout the user (and all other users with that).\n\nWith this fix implemented, when using the database session backend, the existing sessions of the user are invalidated when the password of the user is reset. When using the securecookie session backend, the sessions are NOT invalidated and still require changing the secure key and restarting the webserver (and logging out all other users), but the user resetting the password is informed about it with a flash message warning displayed in the UI. Documentation is also updated explaining this behaviour.\n\nUsers of Apache Airflow are advised to upgrade to version 2.7.0 or newer to mitigate the risk associated with this vulnerability.\n","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2023-08-23T18:30:34.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.6,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-40273","https://github.com/apache/airflow/pull/33347","https://lists.apache.org/thread/9rdmv8ln4y4ncbyrlmjrsj903x4l80nj","https://github.com/apache/airflow/commit/2caa186935151683076b74357daad83d2538a3f6","https://www.openwall.com/lists/oss-security/2023/08/23/1","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-158.yaml","https://github.com/apache/airflow/commit/f5d8201ea7935d17cecaf25fc90d4ef0ccdd627b","https://github.com/advisories/GHSA-pm87-24wq-r8w9"],"source_kind":"github","identifiers":["GHSA-pm87-24wq-r8w9","CVE-2023-40273"],"repository_url":"https://github.com/apache/airflow","blast_radius":27.446478724398098,"packages":[{"versions":[{"first_patched_version":"2.7.0rc2","vulnerable_version_range":"\u003c 2.7.0rc2"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-08-23T21:05:33.266Z","updated_at":"2024-09-11T20:05:40.000Z","epss_percentage":0.00256,"epss_percentile":0.4894},{"uuid":"GSA_kwCzR0hTQS0yNjl4LXBnNWMtNXhnbc4AA1D-","url":"https://github.com/advisories/GHSA-269x-pg5c-5xgm","title":"Apache Airflow Execution with Unnecessary Privileges","description":"Execution with Unnecessary Privileges, : Exposure of Sensitive Information to an Unauthorized Actor vulnerability in Apache Software Foundation Apache Airflow.The \"Run Task\" feature enables authenticated user to bypass some of the restrictions put in place. It allows to execute code in the webserver context as well as allows to bypas limitation of access the user has to certain DAGs. The \"Run Task\" feature is considered dangerous and it has been removed entirely in Airflow 2.6.0.\n\nThis issue affects Apache Airflow: before 2.6.0.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2023-08-05T09:30:16.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-39508","https://github.com/apache/airflow/pull/29706","https://lists.apache.org/thread/j2nkjd0zqvtqk85s6ywpx3c35pvzyx15","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-134.yaml","https://github.com/apache/airflow/commit/101d59c4b88ab979d305b8d96f612c27c8a44aa8","http://seclists.org/fulldisclosure/2023/Jul/43","https://github.com/advisories/GHSA-269x-pg5c-5xgm"],"source_kind":"github","identifiers":["GHSA-269x-pg5c-5xgm","CVE-2023-39508"],"repository_url":"https://github.com/apache/airflow","blast_radius":27.765623825844585,"packages":[{"versions":[{"first_patched_version":"2.6.0b1","vulnerable_version_range":"\u003c 2.6.0b1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-08-09T15:05:38.123Z","updated_at":"2025-02-13T19:10:17.000Z","epss_percentage":0.00413,"epss_percentile":0.60565},{"uuid":"GSA_kwCzR0hTQS02eHdmLXh2ZjMtdjQ1Oc4AA5rU","url":"https://github.com/advisories/GHSA-6xwf-xvf3-v459","title":"Apache Airflow: Incorrect Default Permissions in audit logs for Ops and Viewers users","description":"Apache Airflow, versions before 2.8.2, has a vulnerability that allows authenticated Ops and Viewers users to view all information on audit logs, including dag names and usernames they were not permitted to view. With 2.8.2 and newer, Ops and Viewer users do not have audit log permission by default, they need to be explicitly granted permissions to see the logs. Only admin users have audit log permission by default.\n\nUsers of Apache Airflow are recommended to upgrade to version 2.8.2 or newer to mitigate the risk associated with this vulnerability","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-03-01T12:30:53.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2024-26280","https://github.com/apache/airflow/pull/37501","https://lists.apache.org/thread/knskxxxml95091rsnpxkpo1jjp8rj0fh","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2024-42.yaml","https://github.com/apache/airflow/commit/1a96407cd2d76616c1137de288f092d4f3b097fa","https://github.com/apache/airflow/commit/7f10998c17ab9d725bc8671deb4c12d672bfba99","https://github.com/apache/airflow/commit/8324c87e05741e5a673c43b315619a3788bacc2e","https://github.com/apache/airflow/commit/8463ee4f25114a6c5fb2408d6026afe94bdf106d","https://github.com/apache/airflow/commit/f2ea8a3e1753012bfe0d529c9c8be66cf55ca28f","https://github.com/apache/airflow/commit/f4b9cc74976b7df1acbc3c63471b5751b3e2c40c","http://www.openwall.com/lists/oss-security/2024/03/01/1","https://github.com/advisories/GHSA-6xwf-xvf3-v459"],"source_kind":"github","identifiers":["GHSA-6xwf-xvf3-v459","CVE-2024-26280"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.276400173770966,"packages":[{"versions":[{"first_patched_version":"2.8.2","vulnerable_version_range":"\u003c 2.8.2"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-03-01T22:04:33.501Z","updated_at":"2024-11-01T21:32:53.000Z","epss_percentage":0.00098,"epss_percentile":0.28395},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWZmdzMtNm1wNi1qbXZq","url":"https://github.com/advisories/GHSA-ffw3-6mp6-jmvj","title":"Improper Access Control in Apache Airflow","description":"Improper Access Control on Configurations Endpoint for the Stable API of Apache Airflow allows users with Viewer or User role to get Airflow Configurations including sensitive information even when `[webserver] expose_config` is set to `False` in `airflow.cfg`. This allowed a privilege escalation attack. This issue affects Apache Airflow 2.0.0.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2021-04-07T21:05:57.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2021-26559","https://github.com/apache/airflow/blob/486b76438c0679682cf98cb88ed39c4b161cbcc8/CHANGELOG.txt","https://lists.apache.org/thread.html/r3b3787700279ec361308cbefb7c2cce2acb26891a12ce864e4a13c8d%40%3Cusers.airflow.apache.org%3E","https://lists.apache.org/thread.html/rd142565996d7ee847b9c14b8a9921dcf80bc6bc160e3d9dca6dfc2f8@%3Cannounce.apache.org%3E","http://www.openwall.com/lists/oss-security/2021/02/17/1","https://github.com/apache/airflow/commit/3909232fafd09ac72b49010ecdfd6ea48f06d5cf","https://github.com/apache/airflow/commit/5e35926c7eda0dfa11a9623e4bf5f60c2bd6b3f6","https://github.com/advisories/GHSA-ffw3-6mp6-jmvj","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2021-2.yaml"],"source_kind":"github","identifiers":["GHSA-ffw3-6mp6-jmvj","CVE-2021-26559"],"repository_url":"https://github.com/apache/airflow","blast_radius":22.659302202700754,"packages":[{"versions":[{"first_patched_version":"2.0.1rc1","vulnerable_version_range":"= 2.0.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:08.831Z","updated_at":"2024-11-18T16:26:11.000Z","epss_percentage":0.00297,"epss_percentile":0.52626},{"uuid":"GSA_kwCzR0hTQS02bTlyLTd3cngteG1yNs4AA39d","url":"https://github.com/advisories/GHSA-6m9r-7wrx-xmr6","title":"Apache Airflow Cross-Site Request Forgery vulnerability","description":"Apache Airflow, version 2.7.0 through 2.7.3, has a vulnerability that allows an attacker to trigger a DAG in a GET request without CSRF validation. As a result, it was possible for a malicious website opened in the same browser - by the user who also had Airflow UI opened - to trigger the execution of DAGs without the user's consent.\nUsers are advised to upgrade to version 2.8.0 or later which is not affected","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-12-21T12:30:28.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2023-49920","https://github.com/apache/airflow/pull/36026","https://lists.apache.org/thread/mnwd2vcfw3gms6ft6kl951vfbqrxsnjq","https://github.com/apache/airflow/commit/f5d802791fa5f6b13b635f06a1ea2eccc22a9ba7","http://www.openwall.com/lists/oss-security/2023/12/21/3","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-266.yaml","https://github.com/advisories/GHSA-6m9r-7wrx-xmr6"],"source_kind":"github","identifiers":["GHSA-6m9r-7wrx-xmr6","CVE-2023-49920"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.8.0","vulnerable_version_range":"\u003e= 2.7.0, \u003c 2.8.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-12-21T19:05:58.954Z","updated_at":"2024-11-21T21:36:17.000Z","epss_percentage":0.0017,"epss_percentile":0.39171},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWZoMzctY3g4My1xNTQy","url":"https://github.com/advisories/GHSA-fh37-cx83-q542","title":"Improper Authentication in Apache Airflow","description":"The lineage endpoint of the deprecated Experimental API was not protected by authentication in Airflow 2.0.0. This allowed unauthenticated users to hit that endpoint. This is low-severity issue as the attacker needs to be aware of certain parameters to pass to that endpoint and even after can just get some metadata about a DAG and a Task. This issue only affects Apache Airflow 2.0.0.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2021-06-18T18:30:11.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":6.9,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2021-26697","https://github.com/apache/airflow/commit/21cedff205e7d62675949fda2aa4616d77232b76","https://lists.apache.org/thread.html/r36111262a59219a3e2704c71e97cf84937dae5ba7a1da99499e5d8f9@%3Cannounce.apache.org%3E","https://lists.apache.org/thread.html/re21fec81baea7a6d73b0b5d31efd07cc02c61f832e297f65bb19b519%40%3Cusers.airflow.apache.org%3E","https://lists.apache.org/thread.html/re21fec81baea7a6d73b0b5d31efd07cc02c61f832e297f65bb19b519@%3Cdev.airflow.apache.org%3E","https://lists.apache.org/thread.html/re21fec81baea7a6d73b0b5d31efd07cc02c61f832e297f65bb19b519@%3Cusers.airflow.apache.org%3E","http://www.openwall.com/lists/oss-security/2021/02/17/2","https://github.com/apache/airflow/commit/24a54242d56058846c7978130b3f37ca045d5142","https://github.com/apache/airflow/commit/93957e917ff4cfb0be11aef088bd9527cf728a04","https://github.com/advisories/GHSA-fh37-cx83-q542","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2021-3.yaml"],"source_kind":"github","identifiers":["GHSA-fh37-cx83-q542","CVE-2021-26697"],"repository_url":"https://github.com/apache/airflow","blast_radius":22.02101199980778,"packages":[{"versions":[{"first_patched_version":"2.0.1rc1","vulnerable_version_range":"= 2.0.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:04.647Z","updated_at":"2024-09-12T20:10:22.000Z","epss_percentage":0.02431,"epss_percentile":0.83716},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXE0cDMtcXc1Yy1taHBj","url":"https://github.com/advisories/GHSA-q4p3-qw5c-mhpc","title":"Multiple stored XSS in RBAC Admin screens in Apache Airflow","description":"An issue was found in Apache Airflow versions 1.10.10 and below. It was discovered that many of the admin management screens in the new/RBAC UI handled escaping incorrectly, allowing authenticated users with appropriate permissions to create stored XSS attacks.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2020-07-27T16:57:25.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2020-11983","https://lists.apache.org/thread.html/r7255cf0be3566f23a768e2a04b40fb09e52fcd1872695428ba9afe91%40%3Cusers.airflow.apache.org%3E","https://github.com/advisories/GHSA-q4p3-qw5c-mhpc","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2020-17.yaml"],"source_kind":"github","identifiers":["GHSA-q4p3-qw5c-mhpc","CVE-2020-11983"],"repository_url":null,"blast_radius":16.276400173770966,"packages":[{"versions":[{"first_patched_version":"1.10.11","vulnerable_version_range":"\u003c 1.10.11"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:23.445Z","updated_at":"2024-09-11T19:55:59.000Z","epss_percentage":0.00411,"epss_percentile":0.60484},{"uuid":"GSA_kwCzR0hTQS0zdjdnLTRwZzMtN3I2as0vDg","url":"https://github.com/advisories/GHSA-3v7g-4pg3-7r6j","title":"OS Command injection in Apache Airflow","description":"In Apache Airflow, prior to version 2.2.4, some example DAGs did not properly sanitize user-provided params, making them susceptible to OS Command Injection from the web UI.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2022-02-26T00:00:44.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2022-24288","https://lists.apache.org/thread/dbw5ozcmr0h0lhs0yjph7xdc64oht23t","https://github.com/advisories/GHSA-3v7g-4pg3-7r6j","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2022-30.yaml"],"source_kind":"github","identifiers":["GHSA-3v7g-4pg3-7r6j","CVE-2022-24288"],"repository_url":null,"blast_radius":27.765623825844585,"packages":[{"versions":[{"first_patched_version":"2.2.4","vulnerable_version_range":"\u003c 2.2.4"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:12:34.819Z","updated_at":"2024-09-12T14:06:31.000Z","epss_percentage":0.92442,"epss_percentile":0.99717},{"uuid":"GSA_kwCzR0hTQS00Zmc1LWo0bW0td2ZwZ84AAu_X","url":"https://github.com/advisories/GHSA-4fg5-j4mm-wfpg","title":"Apache Airflow contains open redirect","description":"In Apache Airflow 2.3.0 through 2.3.4, there was an open redirect in the webserver's `/confirm` endpoint.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2022-09-22T22:39:52.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2022-40754","https://github.com/apache/airflow/pull/26409","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2022-280.yaml","https://lists.apache.org/thread/cn098dcp5x3c402xrb06p3l7nz5goffm","https://github.com/apache/airflow/commit/56e7555c42f013f789a4b718676ff09b4a9d5135","https://github.com/apache/airflow/commit/3871f00230b7064e6234aa65b8a00ee2b6d33e4c","https://github.com/advisories/GHSA-4fg5-j4mm-wfpg"],"source_kind":"github","identifiers":["GHSA-4fg5-j4mm-wfpg","CVE-2022-40754"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.914690376663945,"packages":[{"versions":[{"first_patched_version":"2.4.0rc1","vulnerable_version_range":"\u003e= 2.3.0, \u003c 2.4.0rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:11:57.323Z","updated_at":"2024-09-11T18:29:21.000Z","epss_percentage":0.00463,"epss_percentile":0.63098},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTlncWctM2Z4ci05aHY3","url":"https://github.com/advisories/GHSA-9gqg-3fxr-9hv7","title":"Apache Airflow vulnerable to XSS","description":"In Apache Airflow 1.8.2 and earlier, an experimental Airflow feature displayed authenticated cookies, as well as passwords to databases used by Airflow. An attacker who has limited access to airflow, weather it be via XSS or by leaving a machine unlocked can exfil all credentials from the system.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2019-01-25T16:19:09.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2017-17836","https://github.com/advisories/GHSA-9gqg-3fxr-9hv7","https://lists.apache.org/thread.html/ade4d54ebf614f68dc81a08891755e60ea58ba88e0209233eeea5f57@%3Cdev.airflow.apache.org%3E","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2019-149.yaml"],"source_kind":"github","identifiers":["GHSA-9gqg-3fxr-9hv7","CVE-2017-17836"],"repository_url":null,"blast_radius":29.680494434523528,"packages":[{"versions":[{"first_patched_version":"1.9.0","vulnerable_version_range":"\u003c= 1.8.2"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:31.818Z","updated_at":"2024-09-12T20:12:26.000Z","epss_percentage":0.00578,"epss_percentile":0.67524},{"uuid":"GSA_kwCzR0hTQS1jZ3gyLXJybXItang0M84AA2ch","url":"https://github.com/advisories/GHSA-cgx2-rrmr-jx43","title":"Apache Airflow vulnerable to sensitive information exposure when users list warnings for all DAGs","description":"Apache Airflow, versions prior to 2.7.2, contains a security vulnerability that allows authenticated users of Airflow to list warnings for all DAGs, even if the user had no permission to see those DAGs. It would reveal the dag_ids and the stack-traces of import errors for those DAGs with import errors. Users of Apache Airflow are advised to upgrade to version 2.7.2 or newer to mitigate the risk associated with this vulnerability.\n\n","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-10-14T12:30:23.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2023-42780","https://github.com/apache/airflow/pull/34355","https://lists.apache.org/thread/h5tvsvov8j55wojt5sojdprs05oby34d","https://github.com/apache/airflow/commit/cf4eb3fb9b5cf4a8369b890e39523d4c05eed161","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-202.yaml","https://github.com/advisories/GHSA-cgx2-rrmr-jx43"],"source_kind":"github","identifiers":["GHSA-cgx2-rrmr-jx43","CVE-2023-42780"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.7.2","vulnerable_version_range":"\u003c 2.7.2"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-10-17T03:05:47.819Z","updated_at":"2024-09-03T21:33:12.000Z","epss_percentage":0.0011,"epss_percentile":0.30477},{"uuid":"GSA_kwCzR0hTQS1ybWYyLXB3ZnEtaDc1as4AAwAD","url":"https://github.com/advisories/GHSA-rmf2-pwfq-h75j","title":"OS Command Injection in Apache Airflow","description":"Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') vulnerability in Apache Airflow Pig Provider, Apache Airflow allows an attacker to control commands executed in the task execution context, without write access to DAG files. This issue affects Pig Provider versions prior to 4.0.0. It also impacts any Apache Airflow versions prior to 2.3.0 in case Pig Provider is installed (Pig Provider 4.0.0 can only be installed for Airflow 2.3.0+). Note that you need to manually install the Pig Provider version 4.0.0 in order to get rid of the vulnerability on top of Airflow 2.3.0+ version.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2022-11-22T12:30:22.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2022-40189","https://github.com/apache/airflow/pull/27644","https://lists.apache.org/thread/yxnfzfw2w9pj5s785k3rlyly4y44sd15","https://github.com/advisories/GHSA-rmf2-pwfq-h75j"],"source_kind":"github","identifiers":["GHSA-rmf2-pwfq-h75j","CVE-2022-40189"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.3.0","vulnerable_version_range":"\u003c 2.3.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:11:48.824Z","updated_at":"2023-02-01T05:08:23.000Z","epss_percentage":0.01624,"epss_percentile":0.80961},{"uuid":"GSA_kwCzR0hTQS1oODhmLXI3Y3ctOGZ2M84AAp4C","url":"https://github.com/advisories/GHSA-h88f-r7cw-8fv3","title":"Missing Authentication for Critical Function in Apache Airflow","description":"The variable import endpoint was not protected by authentication in Airflow \u003e=2.0.0, \u003c2.1.3. This allowed unauthenticated users to hit that endpoint to add/modify Airflow variables used in DAGs, potentially resulting in a denial of service, information disclosure or remote code execution. This issue affects Apache Airflow \u003e=2.0.0, \u003c2.1.3.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2022-05-24T19:14:00.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2021-38540","https://lists.apache.org/thread.html/rac2ed9118f64733e47b4f1e82ddc8c8020774698f13328ca742b03a2@%3Cannounce.apache.org%3E","https://lists.apache.org/thread.html/rb34c3dd1a815456355217eef34060789f771b6f77c3a3dec77de2064%40%3Cusers.airflow.apache.org%3E","https://github.com/apache/airflow/commit/bcec1df703cd4a01520a90c3f801cca6f97d9bfd","https://github.com/advisories/GHSA-h88f-r7cw-8fv3","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2021-326.yaml"],"source_kind":"github","identifiers":["GHSA-h88f-r7cw-8fv3","CVE-2021-38540"],"repository_url":"https://github.com/apache/airflow","blast_radius":29.680494434523528,"packages":[{"versions":[{"first_patched_version":"2.1.3","vulnerable_version_range":"\u003e= 2.0.0, \u003c 2.1.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:11:57.648Z","updated_at":"2024-09-11T19:50:18.000Z","epss_percentage":0.90036,"epss_percentile":0.99553},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTk5Y3YtOGN2di02NjZj","url":"https://github.com/advisories/GHSA-99cv-8cvv-666c","title":"Apache Airflow vulnerable to Stored XSS","description":"In Apache Airflow before 1.10.2, a malicious admin user could edit the state of objects in the Airflow metadata database to execute arbitrary javascript on certain page views.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2019-03-06T17:35:58.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2018-20244","https://github.com/advisories/GHSA-99cv-8cvv-666c","https://lists.apache.org/thread.html/2de387213d45bc626d27554a1bde7b8c67d08720901f82a50b6f4231@%3Cdev.airflow.apache.org%3E","https://lists.apache.org/thread.html/f656fddf9c49293b3ec450437c46709eb01a12d1645136b2f1b8573b@%3Cdev.airflow.apache.org%3E","http://www.openwall.com/lists/oss-security/2019/04/10/6","https://github.com/apache/airflow/commit/27a4a888e946728d9bb33b78ec604e08d4a93f89","https://github.com/apache/airflow/commit/3ff94c7da60fbb24bf99eb6192c7386e8ab4c4c9","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2019-142.yaml"],"source_kind":"github","identifiers":["GHSA-99cv-8cvv-666c","CVE-2018-20244"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.276400173770966,"packages":[{"versions":[{"first_patched_version":"1.10.2","vulnerable_version_range":"\u003c 1.10.2"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:30.990Z","updated_at":"2025-06-11T01:11:55.893Z","epss_percentage":0.00897,"epss_percentile":0.74501},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWN2Y3EtZ21jMy1xNm04","url":"https://github.com/advisories/GHSA-cvcq-gmc3-q6m8","title":"Apache Airflow logs passwords in plaintext","description":"In Airflow versions prior to 1.10.13, when creating a user using airflow CLI, the password gets logged in plain text in the Log table in Airflow Metadatase. The same happenes when creating a Connection with a password field.","origin":"UNSPECIFIED","severity":"LOW","published_at":"2020-12-17T21:00:56.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":2.4,"cvss_vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:A/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2020-17511","https://github.com/apache/airflow/commit/4e32546faf227a6497ce8b282fff7450cae6f665","https://lists.apache.org/thread.html/ree782a29d927b96bf0b39fb92e2f1f09ea3112a985f7a08ce93765ac%40%3Cusers.airflow.apache.org%3E","https://github.com/advisories/GHSA-cvcq-gmc3-q6m8","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2020-262.yaml"],"source_kind":"github","identifiers":["GHSA-cvcq-gmc3-q6m8","CVE-2020-17511"],"repository_url":"https://github.com/apache/airflow","blast_radius":7.659482434715748,"packages":[{"versions":[{"first_patched_version":"1.10.13","vulnerable_version_range":"\u003c 1.10.13"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:12.500Z","updated_at":"2024-09-11T18:13:20.000Z","epss_percentage":0.00181,"epss_percentile":0.40478},{"uuid":"GSA_kwCzR0hTQS1jM2M2LWYyd3cteGZyMs4AA4qZ","url":"https://github.com/advisories/GHSA-c3c6-f2ww-xfr2","title":"Apache Airflow: pickle deserialization vulnerability in XComs","description":"Apache Airflow, versions before 2.8.1, have a vulnerability that allows a potential attacker to poison the XCom data by bypassing the protection of \"enable_xcom_pickling=False\" configuration setting resulting in poisoned data after XCom deserialization. This vulnerability is considered low since it requires a DAG author to exploit it. Users are recommended to upgrade to version 2.8.1 or later, which fixes this issue.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2024-01-24T15:30:30.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-50943","https://github.com/apache/airflow/pull/36255","https://lists.apache.org/thread/fx278v0twqzxkcts70tc04cp3f8p56pn","http://www.openwall.com/lists/oss-security/2024/01/24/4","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2024-13.yaml","https://github.com/apache/airflow/commit/2c4c5bc604e9ab0cc1e98f7bee7d31d566579462","https://github.com/advisories/GHSA-c3c6-f2ww-xfr2"],"source_kind":"github","identifiers":["GHSA-c3c6-f2ww-xfr2","CVE-2023-50943"],"repository_url":"https://github.com/apache/airflow","blast_radius":27.765623825844585,"packages":[{"versions":[{"first_patched_version":"2.8.1rc1","vulnerable_version_range":"\u003e= 0, \u003c 2.8.1rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-01-24T21:06:13.159Z","updated_at":"2025-02-13T19:33:15.000Z","epss_percentage":0.00161,"epss_percentile":0.37919},{"uuid":"GSA_kwCzR0hTQS01OTQ2LThwMzgtdmZmcM4AA0pU","url":"https://github.com/advisories/GHSA-5946-8p38-vffp","title":"Apache Airflow Improper Input Validation vulnerability","description":"Apache Airflow, versions before 2.6.3, is affected by a vulnerability that allows an attacker to cause a service disruption by manipulating the run_id parameter. This vulnerability is considered low since it requires an authenticated user to exploit it. It is recommended to upgrade to a version that is not affected","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2023-07-12T12:31:36.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-22888","https://github.com/apache/airflow/pull/32293","https://lists.apache.org/thread/dnlht2hvm7k81k5tgjtsfmk27c76kq7z","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-105.yaml","https://github.com/apache/airflow/commit/05bd90f563649f2e9c8f0c85cf5838315a665a02","https://github.com/advisories/GHSA-5946-8p38-vffp"],"source_kind":"github","identifiers":["GHSA-5946-8p38-vffp","CVE-2023-22888"],"repository_url":"https://github.com/apache/airflow","blast_radius":22.659302202700754,"packages":[{"versions":[{"first_patched_version":"2.6.3","vulnerable_version_range":"\u003c 2.6.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-07-21T06:03:41.606Z","updated_at":"2024-11-18T16:26:31.000Z","epss_percentage":0.00133,"epss_percentile":0.34447},{"uuid":"GSA_kwCzR0hTQS13N2NwLWc4djctcjU0bc4AA-2D","url":"https://github.com/advisories/GHSA-w7cp-g8v7-r54m","title":"Apache Airflow Cross-site Scripting Vulnerability","description":"Apache Airflow, versions before 2.10.0, have a vulnerability that allows the developer of a malicious provider to execute a cross-site scripting attack when clicking on a provider documentation link. This would require the provider to be installed on the web server and the user to click the provider link.\nUsers should upgrade to 2.10.0 or later, which fixes this vulnerability.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-08-21T18:31:27.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2024-41937","https://github.com/apache/airflow/pull/40933","https://lists.apache.org/thread/lwlmgg6hqfmkpvw5py4w53hxyl37jl6d","https://github.com/apache/airflow/commit/f1852c2ab28b155e196569780013fbb61a4a1f98","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2024-181.yaml","http://www.openwall.com/lists/oss-security/2024/08/21/3","https://github.com/advisories/GHSA-w7cp-g8v7-r54m"],"source_kind":"github","identifiers":["GHSA-w7cp-g8v7-r54m","CVE-2024-41937"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.914690376663945,"packages":[{"versions":[{"first_patched_version":"2.10.0","vulnerable_version_range":"\u003c 2.10.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-08-21T21:05:46.241Z","updated_at":"2025-01-21T18:00:49.000Z","epss_percentage":0.01469,"epss_percentile":0.79967},{"uuid":"GSA_kwCzR0hTQS1weGNoLXdyN20tcnd4as4AA39U","url":"https://github.com/advisories/GHSA-pxch-wr7m-rwxj","title":"Apache Airflow has a stored cross-site scripting vulnerability","description":"Apache Airflow, versions 2.6.0 through 2.7.3 has a stored XSS vulnerability that allows a DAG author to add an unbounded and not-sanitized javascript in the parameter description field of the DAG. This Javascript can be executed on the client side of any of the user who looks at the tasks in the browser sandbox. While this issue does not allow to exit the browser sandbox or manipulation of the server-side data - more than the DAG author already has, it allows to modify what the user looking at the DAG details sees in the browser - which opens up all kinds of possibilities of misleading other users.\n\nUsers of Apache Airflow are recommended to upgrade to version 2.8.0 or newer to mitigate the risk associated with this vulnerability","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-12-21T12:30:27.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2023-47265","https://github.com/apache/airflow/pull/35460","https://lists.apache.org/thread/128f3zl375vb1qv93k82zhnwkpl233pr","https://github.com/apache/airflow/commit/0b995602e6e5894ee31625a4dd0e6aa255d2a651","http://www.openwall.com/lists/oss-security/2023/12/21/2","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-264.yaml","https://github.com/advisories/GHSA-pxch-wr7m-rwxj"],"source_kind":"github","identifiers":["GHSA-pxch-wr7m-rwxj","CVE-2023-47265"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.8.0b1","vulnerable_version_range":"\u003e= 2.6.0, \u003c= 2.7.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-12-21T19:05:58.927Z","updated_at":"2025-02-13T19:30:01.000Z","epss_percentage":0.00143,"epss_percentile":0.3581},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTk3NnItcWZqai1jMjR3","url":"https://github.com/advisories/GHSA-976r-qfjj-c24w","title":"Command injection via Celery broker in Apache Airflow","description":"An issue was found in Apache Airflow versions 1.10.10 and below. When using CeleryExecutor, if an attacker can connect to the broker (Redis, RabbitMQ) directly, it is possible to inject commands, resulting in the celery worker running arbitrary commands.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2020-07-27T16:57:33.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2020-11981","https://lists.apache.org/thread.html/r7255cf0be3566f23a768e2a04b40fb09e52fcd1872695428ba9afe91%40%3Cusers.airflow.apache.org%3E","https://github.com/apache/airflow/commit/afa4b11fddfdbadb048f742cf66d5c21c675a5c8","https://web.archive.org/web/20220427031325/https://issues.apache.org/jira/browse/AIRFLOW-6351","https://github.com/apache/airflow/commit/1dda6fdde7c6bcaf0d6534786beeeba868006dd2","https://github.com/advisories/GHSA-976r-qfjj-c24w","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2020-15.yaml"],"source_kind":"github","identifiers":["GHSA-976r-qfjj-c24w","CVE-2020-11981"],"repository_url":"https://github.com/apache/airflow","blast_radius":29.680494434523528,"packages":[{"versions":[{"first_patched_version":"1.10.11rc1","vulnerable_version_range":"\u003e= 0, \u003c 1.10.11rc1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:12:32.628Z","updated_at":"2024-09-11T21:13:37.000Z","epss_percentage":0.90015,"epss_percentile":0.99548},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLW02aDItang5di01OHc2","url":"https://github.com/advisories/GHSA-m6h2-jx9v-58w6","title":"Missing Authorization in Apache Airflow","description":"If remote logging is not used, the worker (in the case of CeleryExecutor) or the scheduler (in the case of LocalExecutor) runs a Flask logging server and is listening on a specific port and also binds on 0.0.0.0 by default. This logging server had no authentication and allows reading log files of DAG jobs. This issue affects Apache Airflow \u003c 2.1.2.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2021-08-30T16:25:57.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2021-35936","https://lists.apache.org/thread.html/r53d6bd7b0a66f92ddaf1313282f10fec802e71246606dd30c16536df%40%3Cusers.airflow.apache.org%3E","https://github.com/apache/airflow/commit/27265516d2b897585f5019ecd820cfe5471fd351","https://github.com/apache/airflow/commit/7a5bb88ad78d600fbb1676a55752597928115bd8","https://github.com/apache/airflow/commit/d772f38f843b9add5319a01cf51a844145b01f63","https://github.com/apache/airflow/compare/2.1.1...2.1.2","https://github.com/advisories/GHSA-m6h2-jx9v-58w6","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2021-122.yaml"],"source_kind":"github","identifiers":["GHSA-m6h2-jx9v-58w6","CVE-2021-35936"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.914690376663945,"packages":[{"versions":[{"first_patched_version":"2.1.2","vulnerable_version_range":"\u003c 2.1.2"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:12:48.881Z","updated_at":"2024-09-11T19:51:04.000Z","epss_percentage":0.00116,"epss_percentile":0.31539},{"uuid":"GSA_kwCzR0hTQS1tanFoLXY1ZjItZzJtd84AA11j","url":"https://github.com/advisories/GHSA-mjqh-v5f2-g2mw","title":"Apache Airflow information exposure vulnerability","description":"Apache Airflow, versions before 2.7.1, is affected by a vulnerability that allows authenticated users who have access to see the task/dag in the UI, to craft a URL, which could lead to unmasking the secret configuration of the task that otherwise would be masked in the UI.\n\nUsers are strongly advised to upgrade to version 2.7.1 or later which has removed the vulnerability.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2023-09-12T19:25:08.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-40712","https://github.com/apache/airflow/pull/33512","https://github.com/apache/airflow/pull/33516","https://github.com/apache/airflow/commit/4390524a41fdfd2d57f1d2dc98ad7b4009c8399e","https://github.com/apache/airflow/commit/d9814eb3a2fc1dbbb885a0a2c1b7a23ce1cfa148","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-171.yaml","https://lists.apache.org/thread/jw1yv4lt6hpowqbb0x4o3tdp0jhx2bts","https://github.com/advisories/GHSA-mjqh-v5f2-g2mw"],"source_kind":"github","identifiers":["GHSA-mjqh-v5f2-g2mw","CVE-2023-40712"],"repository_url":"https://github.com/apache/airflow","blast_radius":22.659302202700754,"packages":[{"versions":[{"first_patched_version":"2.7.1","vulnerable_version_range":"\u003e= 0, \u003c 2.7.1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-09-12T20:05:59.502Z","updated_at":"2024-11-18T16:26:33.000Z","epss_percentage":0.00102,"epss_percentile":0.29073},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTRwd3EtZmo4OS02cmpj","url":"https://github.com/advisories/GHSA-4pwq-fj89-6rjc","title":"Apache Airflow Cross-site Scripting ","description":"In Apache Airflow \u003c 1.10.12, the `origin` parameter passed to some of the endpoints like `/trigger` and was vulnerable to a XSS exploit.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2021-06-18T18:29:54.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2020-13944","https://github.com/apache/airflow/commit/5c2bb7b0b0e717b11f093910b443243330ad93ca","https://lists.apache.org/thread.html/r2892ef594dbbf54d0939b808626f52f7c2d1584f8aa1d81570847d2a@%3Cannounce.apache.org%3E","https://lists.apache.org/thread.html/r2892ef594dbbf54d0939b808626f52f7c2d1584f8aa1d81570847d2a@%3Cdev.airflow.apache.org%3E","https://lists.apache.org/thread.html/r2892ef594dbbf54d0939b808626f52f7c2d1584f8aa1d81570847d2a@%3Cusers.airflow.apache.org%3E","https://lists.apache.org/thread.html/r4656959c8ed06c1f6202d89aa4e67b35ad7bdba5a666caff3fea888e@%3Cusers.airflow.apache.org%3E","https://lists.apache.org/thread.html/r97e1b60ca508a86be58c43f405c0c8ff00ba467ba0bee68704ae7e3e%40%3Cdev.airflow.apache.org%3E","https://lists.apache.org/thread.html/ra8ce70088ba291f358e077cafdb14d174b7a1ce9a9d86d1b332d6367@%3Cusers.airflow.apache.org%3E","http://www.openwall.com/lists/oss-security/2020/12/11/2","http://www.openwall.com/lists/oss-security/2021/05/01/2","https://lists.apache.org/thread.html/rc005f4de9d9b0ba943ceb8ff5a21a5c6ff8a9df52632476698d99432@%3Cannounce.apache.org%3E","https://github.com/advisories/GHSA-4pwq-fj89-6rjc","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2020-19.yaml"],"source_kind":"github","identifiers":["GHSA-4pwq-fj89-6rjc","CVE-2020-13944"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.914690376663945,"packages":[{"versions":[{"first_patched_version":"1.10.12","vulnerable_version_range":"\u003c 1.10.12"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:05.794Z","updated_at":"2024-09-11T20:04:09.000Z","epss_percentage":0.17045,"epss_percentile":0.94613},{"uuid":"GSA_kwCzR0hTQS1obTlyLTdmODQtMjVjOc4AA3Cv","url":"https://github.com/advisories/GHSA-hm9r-7f84-25c9","title":"Apache Airflow allows authenticated and DAG-view authorized users to modify some DAG run detail values when submitting notes","description":"Apache Airflow, versions before 2.7.3, is affected by a vulnerability that allows authenticated and DAG-view authorized Users to modify some DAG run detail values when submitting notes. This could have them alter details such as configuration parameters, start date, etc.  Users should upgrade to version 2.7.3 or later which has removed the vulnerability.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-11-12T15:30:20.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-47037","https://github.com/apache/airflow/pull/33413","https://lists.apache.org/thread/04y4vrw1t2xl030gswtctc4nt1w90cb0","http://www.openwall.com/lists/oss-security/2023/11/12/1","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2023-232.yaml","https://github.com/apache/airflow/commit/b7a46c970d638028a4a7643ad000dcee951fb9ef","https://github.com/apache/airflow/commit/2a0106e4edf67c5905ebfcb82a6008662ae0f7ad","https://github.com/advisories/GHSA-hm9r-7f84-25c9"],"source_kind":"github","identifiers":["GHSA-hm9r-7f84-25c9","CVE-2023-47037"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.914690376663945,"packages":[{"versions":[{"first_patched_version":"2.7.3","vulnerable_version_range":"\u003c 2.7.3"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2023-11-13T21:06:01.086Z","updated_at":"2025-02-13T19:21:05.000Z","epss_percentage":0.00062,"epss_percentile":0.19761},{"uuid":"GSA_kwCzR0hTQS02cHczLThoOXctMzJnY84AAv2i","url":"https://github.com/advisories/GHSA-6pw3-8h9w-32gc","title":"Apache Airflow vulnerable to OS Command Injection via example DAGs","description":"A vulnerability in Example Dags of Apache Airflow allows an attacker with UI access who can trigger DAGs, to execute arbitrary commands via manually provided run_id parameter. This issue affects Apache Airflow versions prior to 2.4.0.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2022-11-14T12:00:15.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2022-40127","https://github.com/apache/airflow/pull/25960","https://lists.apache.org/thread/cf132hgm6jvzvsbpsozl3plf1r4cwysy","http://www.openwall.com/lists/oss-security/2022/11/14/2","https://github.com/apache/airflow/commit/372e699c2d1e11f7087b5340454d0a0a6a56fbf5","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2022-42982.yaml","https://github.com/advisories/GHSA-6pw3-8h9w-32gc"],"source_kind":"github","identifiers":["GHSA-6pw3-8h9w-32gc","CVE-2022-40127"],"repository_url":"https://github.com/apache/airflow","blast_radius":27.765623825844585,"packages":[{"versions":[{"first_patched_version":"2.4.0","vulnerable_version_range":"\u003c 2.4.0"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:11:50.283Z","updated_at":"2024-09-11T19:39:25.000Z","epss_percentage":0.93468,"epss_percentile":0.99812},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTN4eHYtcDc4ci00ZmM2","url":"https://github.com/advisories/GHSA-3xxv-p78r-4fc6","title":"Cross-site Scripting in Apache Airflow","description":"The \"origin\" parameter passed to some of the endpoints like '/trigger' was vulnerable to XSS exploit. This issue affects Apache Airflow versions \u003c1.10.15 in 1.x series and affects 2.0.0 and 2.0.1 and 2.x series. This is the same as CVE-2020-13944 \u0026 CVE-2020-17515 but the implemented fix did not fix the issue completely. Update to Airflow 1.10.15 or 2.0.2. Please also update your Python version to the latest available PATCH releases of the installed MINOR versions, example update to Python 3.6.13 if you are on Python 3.6. (Those contain the fix for CVE-2021-23336 https://nvd.nist.gov/vuln/detail/CVE-2021-23336).","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2021-06-18T18:43:42.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2021-28359","https://lists.apache.org/thread.html/ra8ce70088ba291f358e077cafdb14d174b7a1ce9a9d86d1b332d6367%40%3Cusers.airflow.apache.org%3E","https://lists.apache.org/thread.html/rc005f4de9d9b0ba943ceb8ff5a21a5c6ff8a9df52632476698d99432@%3Cannounce.apache.org%3E","https://github.com/apache/airflow/commit/2fef2ab1bf0f8c727a503940c9c65fd5be208386","https://github.com/advisories/GHSA-3xxv-p78r-4fc6","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2021-4.yaml"],"source_kind":"github","identifiers":["GHSA-3xxv-p78r-4fc6","CVE-2021-28359"],"repository_url":"https://github.com/apache/airflow","blast_radius":16.914690376663945,"packages":[{"versions":[{"first_patched_version":"2.0.2","vulnerable_version_range":"\u003e= 2.0.0a1, \u003c 2.0.2"},{"first_patched_version":"1.10.15","vulnerable_version_range":"\u003c 1.10.15"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:01.605Z","updated_at":"2024-09-12T14:00:38.000Z","epss_percentage":0.02315,"epss_percentile":0.83984},{"uuid":"GSA_kwCzR0hTQS1tZzJ4LW1nZ2otNjk1Nc4AA4qb","url":"https://github.com/advisories/GHSA-mg2x-mggj-6955","title":"Apache Airflow CNCF Kubernetes provider, Apache Airflow: Kubernetes configuration file saved without encryption in the Metadata and logged as plain text in the Triggerer service","description":"Since version 5.2.0, when using deferrable mode with the path of a Kubernetes configuration file for authentication, the Airflow worker serializes this configuration file as a dictionary and sends it to the triggerer by storing it in metadata without any encryption. Additionally, if used with an Airflow version between 2.3.0 and 2.6.0, the configuration dictionary will be logged as plain text in the triggerer service without masking. This allows anyone with access to the metadata or triggerer log to obtain the configuration file and use it to access the Kubernetes cluster.\n\nThis behavior was changed in version 7.0.0, which stopped serializing the file contents and started providing the file path instead to read the contents into the trigger. Users are recommended to upgrade to version 7.0.0, which fixes this issue.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-01-24T15:30:30.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2023-51702","https://github.com/apache/airflow/pull/29498","https://github.com/apache/airflow/pull/30110","https://github.com/apache/airflow/pull/36492","https://lists.apache.org/thread/89x3q6lz5pykrkr1fkr04k4rfn9pvnv9","http://www.openwall.com/lists/oss-security/2024/01/24/3","https://github.com/advisories/GHSA-mg2x-mggj-6955"],"source_kind":"github","identifiers":["GHSA-mg2x-mggj-6955","CVE-2023-51702"],"repository_url":"https://github.com/apache/airflow","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"7.0.0","vulnerable_version_range":"\u003e= 5.2.0, \u003c 7.0.0"}],"ecosystem":"pypi","package_name":"apache-airflow-providers-cncf-kubernetes"},{"versions":[{"first_patched_version":"2.6.1","vulnerable_version_range":"\u003e= 2.3.0, \u003c 2.6.1"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2024-01-24T22:06:05.393Z","updated_at":"2024-01-31T14:55:47.000Z","epss_percentage":0.00047,"epss_percentile":0.14017},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTlnMnctNWYzdi1tZm1t","url":"https://github.com/advisories/GHSA-9g2w-5f3v-mfmm","title":"Insecure default config of Celery worker in Apache Airflow","description":"An issue was found in Apache Airflow versions 1.10.10 and below. When using CeleryExecutor, if an attack can connect to the broker (Redis, RabbitMQ) directly, it was possible to insert a malicious payload directly to the broker which could lead to a deserialization attack (and thus remote code execution) on the Worker.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2020-07-27T16:57:33.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2020-11982","https://lists.apache.org/thread.html/r7255cf0be3566f23a768e2a04b40fb09e52fcd1872695428ba9afe91%40%3Cusers.airflow.apache.org%3E","https://github.com/apache/airflow/pull/13612","https://github.com/apache/airflow/pull/7205","https://github.com/advisories/GHSA-9g2w-5f3v-mfmm","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2020-16.yaml"],"source_kind":"github","identifiers":["GHSA-9g2w-5f3v-mfmm","CVE-2020-11982"],"repository_url":"https://github.com/apache/airflow","blast_radius":29.680494434523528,"packages":[{"versions":[{"first_patched_version":"1.10.11","vulnerable_version_range":"\u003c 1.10.11"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:23.461Z","updated_at":"2024-09-11T19:46:43.000Z","epss_percentage":0.05094,"epss_percentile":0.89284},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXJqdmctcTU3di1tampj","url":"https://github.com/advisories/GHSA-rjvg-q57v-mjjc","title":"XSS in Apache Airflow","description":"In Apache Airflow before 1.10.5 when running with the \"classic\" UI, a malicious admin user could edit the state of objects in the Airflow metadata database to execute arbitrary javascript on certain page views. The new \"RBAC\" UI is unaffected.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2020-05-06T19:51:02.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":4.6,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2019-12398","https://github.com/apache/airflow/blob/1.10.5/CHANGELOG.txt","https://lists.apache.org/thread.html/r72487ad6b23d18689896962782f8c93032afe5c72a6bfd23b253352b%40%3Cusers.airflow.apache.org%3E","https://lists.apache.org/thread.html/r72487ad6b23d18689896962782f8c93032afe5c72a6bfd23b253352b@%3Cdev.airflow.apache.org%3E","http://www.openwall.com/lists/oss-security/2020/01/14/2","https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2020-162.yaml","https://github.com/advisories/GHSA-rjvg-q57v-mjjc"],"source_kind":"github","identifiers":["GHSA-rjvg-q57v-mjjc","CVE-2019-12398"],"repository_url":"https://github.com/apache/airflow","blast_radius":14.680674666538517,"packages":[{"versions":[{"first_patched_version":"1.10.5","vulnerable_version_range":"\u003c 1.10.5"}],"ecosystem":"pypi","package_name":"apache-airflow"}],"created_at":"2022-12-21T16:13:24.967Z","updated_at":"2024-09-03T21:36:38.000Z","epss_percentage":0.0067,"epss_percentile":0.70071}],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/apache-airflow","docker_dependents_count":255,"docker_downloads_count":358903212,"usage_url":"https://repos.ecosyste.ms/usage/pypi/apache-airflow","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/apache-airflow/dependencies","status":null,"funding_links":[],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/apache-airflow/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/apache-airflow/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/apache-airflow/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/apache-airflow/related_packages","maintainers":[{"uuid":"Apache Airflow","login":"Apache Airflow","name":null,"email":null,"url":null,"packages_count":53,"html_url":"https://pypi.org/user/Apache Airflow/","role":null,"created_at":"2023-06-14T04:06:05.297Z","updated_at":"2023-06-14T04:06:05.297Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/Apache%20Airflow/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":691846,"maintainers_count":293489,"namespaces_count":0,"keywords_count":229052,"github":"pypi","metadata":{"funded_packages_count":49048},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-10T05:59:11.825Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},"unique_repositories_count":79,"unique_repositories_count_past_30_days":5,"recent_issues":[{"uuid":"4507542660","node_id":"PR_kwDOSlaZiM7eltws","number":7,"state":"closed","title":"deps(deps): bump the pip group across 1 directory with 4 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-24T02:09:08.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-23T08:48:02.000Z","updated_at":"2026-05-24T02:09:08.000Z","time_to_close":62466,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"pip","update_count":4,"packages":[{"name":"python-multipart","old_version":"0.0.12","new_version":"0.0.27","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"cryptography","old_version":"43.0.1","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"apache-airflow","old_version":"2.10.2","new_version":"3.2.1rc1","repository_url":"https://github.com/apache/airflow"},{"name":"pytest","old_version":"8.3.3","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 4 updates in the / directory: [python-multipart](https://github.com/Kludex/python-multipart), [cryptography](https://github.com/pyca/cryptography), [apache-airflow](https://github.com/apache/airflow) and [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `python-multipart` from 0.0.12 to 0.0.27\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass parse offsets via constructors by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003eKludex/python-multipart#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd multipart header limits by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003eKludex/python-multipart#267\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27 (2026-04-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd multipart header limits \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003e#267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePass parse offsets via constructors \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003e#268\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.22 (2026-01-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop directory path from filename in \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://github.com/Kludex/python-multipart/commit/9433f4bbc9652bdde82bbe380984e32f8cfc89c4\"\u003e9433f4b\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.20 (2024-12-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/142\"\u003e#142\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.19 (2024-11-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't warn when CRLF is found after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/193\"\u003e#193\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.18 (2024-11-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHard break if found data after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/189\"\u003e#189\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/Kludex/python-multipart/commit/6d1d6892a6b01b25da6f3e7b097e8e06c57fb250\"\u003e\u003ccode\u003e6d1d689\u003c/code\u003e\u003c/a\u003e Version 0.0.27 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/0b10220b1555af068a2bc8b198022b1ae238200f\"\u003e\u003ccode\u003e0b10220\u003c/code\u003e\u003c/a\u003e Run CI on main branch pull requests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3e64f5f8caba0e5d391b0c1ad0f1c2edf9e8f911\"\u003e\u003ccode\u003e3e64f5f\u003c/code\u003e\u003c/a\u003e Add multipart header limits (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/eb109cc4eb8174f2a7efc1ba894b1bf6425c0b14\"\u003e\u003ccode\u003eeb109cc\u003c/code\u003e\u003c/a\u003e Pass parse offsets via constructors (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/78e29abb9a339598975beee093a770ec3033f76d\"\u003e\u003ccode\u003e78e29ab\u003c/code\u003e\u003c/a\u003e Bump pytest from 9.0.2 to 9.0.3 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b2ddd0982bdf0fe852e4f3baa12122d2827af46c\"\u003e\u003ccode\u003eb2ddd09\u003c/code\u003e\u003c/a\u003e fuzz: Enhance fuzzing capabilities with new chunked and boundary tests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.12...0.0.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 43.0.1 to 46.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.7 - 2026-04-07\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could be\n  passed to APIs that accept Python buffers, which could lead to buffer\n  overflow. **CVE-2026-39892**\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.6.\n\u003cp\u003e.. _v46-0-6:\u003c/p\u003e\n\u003cp\u003e46.0.6 - 2026-03-25\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSECURITY ISSUE\u003c/strong\u003e: Fixed a bug where name constraints were not applied\nto peer names during verification when the leaf certificate contains a\nwildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\nincluding those used by the Web PKI. Credit to \u003cstrong\u003eOleh Konko (1seal)\u003c/strong\u003e for\nreporting the issue. \u003cstrong\u003eCVE-2026-34073\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-5:\u003c/p\u003e\n\u003cp\u003e46.0.5 - 2026-02-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* An attacker could create a malicious public key that reveals portions of your\n  private key when using certain uncommon elliptic curves (binary curves).\n  This version now includes additional security checks to prevent this attack.\n  This issue only affects binary elliptic curves, which are rarely used in\n  real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and\n  Atuin Automated Vulnerability Discovery Engine** for reporting the issue.\n  **CVE-2026-26007**\n* Support for ``SECT*`` binary elliptic curves is deprecated and will be\n  removed in the next release.\n\u003cp\u003e.. v46-0-4:\u003c/p\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDropped support for win_arm64 wheels\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-3:\u003c/p\u003e\n\u003cp\u003e46.0.3 - 2025-10-15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed compilation when using LibreSSL 4.2.0.\n\u003cp\u003e.. _v46-0-2:\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5\"\u003e\u003ccode\u003e622d672\u003c/code\u003e\u003c/a\u003e 46.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14602\"\u003e#14602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/91d728897bdad30cd5c79a2b23e207f1f050d587\"\u003e\u003ccode\u003e91d7288\u003c/code\u003e\u003c/a\u003e Cherry-pick \u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14542\"\u003e#14542\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14543\"\u003e#14543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/06e120e682cb200e3f7050c02f0bcdac90c4c6ad\"\u003e\u003ccode\u003e06e120e\u003c/code\u003e\u003c/a\u003e bump version for 46.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14289\"\u003e#14289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c\"\u003e\u003ccode\u003e0eebb9d\u003c/code\u003e\u003c/a\u003e EC check key on cofactor \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14287\"\u003e#14287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e\"\u003e\u003ccode\u003ebedf6e1\u003c/code\u003e\u003c/a\u003e fix openssl version on 46 branch (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/c0af4dd7b75921bbe9f1d41a03dbd4b64a9e3403\"\u003e\u003ccode\u003ec0af4dd\u003c/code\u003e\u003c/a\u003e release 46.0.3 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13681\"\u003e#13681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/99efe5ad150a56efadafacaffd0e3ee319373904\"\u003e\u003ccode\u003e99efe5a\u003c/code\u003e\u003c/a\u003e bump version for 46.0.2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13531\"\u003e#13531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e735cfc27502320101c130335c556394a125ba52\"\u003e\u003ccode\u003ee735cfc\u003c/code\u003e\u003c/a\u003e release 46.0.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13450\"\u003e#13450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/4e457ffba43a6d87efc63c33041e2081438dd8a4\"\u003e\u003ccode\u003e4e457ff\u003c/code\u003e\u003c/a\u003e Explicitly specify python in mac uv build invocation (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13447\"\u003e#13447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/43.0.1...46.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apache-airflow` from 2.10.2 to 3.2.1rc1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/b457a3001f055dabbf73b8562026113ac9d91488\"\u003e\u003ccode\u003eb457a30\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/200a7e13a628316ad8020cfc31f5dff888d0e748\"\u003e\u003ccode\u003e200a7e1\u003c/code\u003e\u003c/a\u003e Update version to 3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3abf7e0d9fcdbedd9562184dd96171f7a5e5d5b3\"\u003e\u003ccode\u003e3abf7e0\u003c/code\u003e\u003c/a\u003e update release notes of 3.2.0 specifying \u003ccode\u003esqlalchemy[asyncio]\u0026gt;=2.0.48\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/6513\"\u003e#6513\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/daae7bbfef9e2fc19f01facd4d2b1c65e9495ae6\"\u003e\u003ccode\u003edaae7bb\u003c/code\u003e\u003c/a\u003e Restore \u003ccode\u003edeactivate_deleted_dags\u003c/code\u003e signature broken by \u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64245\"\u003e#64245\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65312\"\u003e#65312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/519c4f1cf2dc8e90ad910407895d86e7e74689de\"\u003e\u003ccode\u003e519c4f1\u003c/code\u003e\u003c/a\u003e fix: use Dag form when materializing asset (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64211\"\u003e#64211\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65303\"\u003e#65303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7c4dbf9ead4e2fd0eddb853fd5858517ba1431eb\"\u003e\u003ccode\u003e7c4dbf9\u003c/code\u003e\u003c/a\u003e Change default sort to 'id' for list task instances (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64168\"\u003e#64168\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65297\"\u003e#65297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7ba62fcc3924564c03b55da60ce3d6ba8c9882e6\"\u003e\u003ccode\u003e7ba62fc\u003c/code\u003e\u003c/a\u003e Fix zip DAG import errors being cleared during bundle refresh (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65296\"\u003e#65296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8a3af78363955dc4de4a74a57ed5143c999c3b7c\"\u003e\u003ccode\u003e8a3af78\u003c/code\u003e\u003c/a\u003e Remove outdated TODO comment about permissions (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64169\"\u003e#64169\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65295\"\u003e#65295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f6dc7714270808a0762b1fc6b77c500d23954ca3\"\u003e\u003ccode\u003ef6dc771\u003c/code\u003e\u003c/a\u003e fix(connection-model): RFC3896 \u003ccode\u003econn_type\u003c/code\u003e warning (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63167\"\u003e#63167\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65294\"\u003e#65294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f55ed5c070d77e7370a88763b10a53b38e09f5ee\"\u003e\u003ccode\u003ef55ed5c\u003c/code\u003e\u003c/a\u003e Add overridable metadata engine creation hooks in \u003ccode\u003esettings.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/62184\"\u003e#62184\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65\"\u003e#65\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/2.10.2...3.2.1rc1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.3 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/zrlopez/ml-incident-response-playbook/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/zrlopez%2Fml-incident-response-playbook/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"},{"uuid":"4412962790","node_id":"PR_kwDOR4C6KM7Z3ezv","number":7,"state":"closed","title":"build(deps): Bump the pip group across 2 directories with 3 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-09T23:18:48.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-09T15:36:02.000Z","updated_at":"2026-05-09T23:18:50.000Z","time_to_close":27766,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"pip","update_count":3,"packages":[{"name":"apache-airflow","old_version":"2.10.5","new_version":"3.2.1rc1","repository_url":"https://github.com/apache/airflow"},{"name":"mlflow","old_version":"2.21.3","new_version":"3.11.0rc1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"python-multipart","old_version":"0.0.19","new_version":"0.0.27","repository_url":"https://github.com/Kludex/python-multipart"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 2 updates in the /airflow directory: [apache-airflow](https://github.com/apache/airflow) and [mlflow](https://github.com/mlflow/mlflow).\nBumps the pip group with 1 update in the /ml-engine directory: [python-multipart](https://github.com/Kludex/python-multipart).\n\nUpdates `apache-airflow` from 2.10.5 to 3.2.1rc1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/b457a3001f055dabbf73b8562026113ac9d91488\"\u003e\u003ccode\u003eb457a30\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/200a7e13a628316ad8020cfc31f5dff888d0e748\"\u003e\u003ccode\u003e200a7e1\u003c/code\u003e\u003c/a\u003e Update version to 3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3abf7e0d9fcdbedd9562184dd96171f7a5e5d5b3\"\u003e\u003ccode\u003e3abf7e0\u003c/code\u003e\u003c/a\u003e update release notes of 3.2.0 specifying \u003ccode\u003esqlalchemy[asyncio]\u0026gt;=2.0.48\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/6513\"\u003e#6513\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/daae7bbfef9e2fc19f01facd4d2b1c65e9495ae6\"\u003e\u003ccode\u003edaae7bb\u003c/code\u003e\u003c/a\u003e Restore \u003ccode\u003edeactivate_deleted_dags\u003c/code\u003e signature broken by \u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64245\"\u003e#64245\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65312\"\u003e#65312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/519c4f1cf2dc8e90ad910407895d86e7e74689de\"\u003e\u003ccode\u003e519c4f1\u003c/code\u003e\u003c/a\u003e fix: use Dag form when materializing asset (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64211\"\u003e#64211\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65303\"\u003e#65303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7c4dbf9ead4e2fd0eddb853fd5858517ba1431eb\"\u003e\u003ccode\u003e7c4dbf9\u003c/code\u003e\u003c/a\u003e Change default sort to 'id' for list task instances (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64168\"\u003e#64168\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65297\"\u003e#65297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7ba62fcc3924564c03b55da60ce3d6ba8c9882e6\"\u003e\u003ccode\u003e7ba62fc\u003c/code\u003e\u003c/a\u003e Fix zip DAG import errors being cleared during bundle refresh (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65296\"\u003e#65296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8a3af78363955dc4de4a74a57ed5143c999c3b7c\"\u003e\u003ccode\u003e8a3af78\u003c/code\u003e\u003c/a\u003e Remove outdated TODO comment about permissions (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64169\"\u003e#64169\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65295\"\u003e#65295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f6dc7714270808a0762b1fc6b77c500d23954ca3\"\u003e\u003ccode\u003ef6dc771\u003c/code\u003e\u003c/a\u003e fix(connection-model): RFC3896 \u003ccode\u003econn_type\u003c/code\u003e warning (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63167\"\u003e#63167\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65294\"\u003e#65294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f55ed5c070d77e7370a88763b10a53b38e09f5ee\"\u003e\u003ccode\u003ef55ed5c\u003c/code\u003e\u003c/a\u003e Add overridable metadata engine creation hooks in \u003ccode\u003esettings.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/62184\"\u003e#62184\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65\"\u003e#65\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/2.10.5...3.2.1rc1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mlflow` from 2.21.3 to 3.11.0rc1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mlflow/mlflow/releases\"\u003emlflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11.0rc1\u003c/h2\u003e\n\u003cp\u003eStripped third-party dependencies from evaluation and AI Gateway features, replacing external provider routing with built-in implementations.\u003c/p\u003e\n\u003ch2\u003ev3.11.0rc0\u003c/h2\u003e\n\u003cp\u003eWe're excited to announce MLflow 3.11.0rc0, which includes several notable updates:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMajor New Features\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🔍 \u003cstrong\u003eAutomatic Issue Identification\u003c/strong\u003e: Automatically identify quality issues in your agent with AI! Use the new \u0026quot;Detect Issues\u0026quot; button in the traces table to analyze selected traces and surface potential problems across categories like correctness, safety, and performance. Issues are linked directly to traces for easy investigation and debugging. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21431\"\u003e#21431\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21204\"\u003e#21204\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21165\"\u003e#21165\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21163\"\u003e#21163\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21161\"\u003e#21161\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e💰 \u003cstrong\u003eGateway Budget Alerts \u0026amp; Limits\u003c/strong\u003e: Control your AI Gateway spending with configurable budget policies! Set spending limits by time window (daily, weekly, or monthly), receive alerts before hitting limits, and prevent runaway costs with automatic request blocking. The new budget management UI lets you track spending, configure webhooks for notifications, and monitor violations across all your gateway endpoints. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21116\"\u003e#21116\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21534\"\u003e#21534\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21569\"\u003e#21569\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21473\"\u003e#21473\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21108\"\u003e#21108\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e📊 \u003cstrong\u003eTrace Graph View\u003c/strong\u003e: Visualize complex trace hierarchies with an interactive graph view! Navigate multi-level trace structures, understand parent-child relationships at a glance, and debug complex systems more effectively with a visual representation of your trace topology. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20607\"\u003e#20607\u003c/a\u003e, \u003ca href=\"https://github.com/joelrobin18\"\u003e\u003ccode\u003e@​joelrobin18\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e🌐 \u003cstrong\u003eNative OpenTelemetry GenAI Convention Support\u003c/strong\u003e: MLflow now natively supports the OpenTelemetry GenAI Semantic Conventions for trace export! When exporting traces via OTLP with \u003ccode\u003eMLFLOW_ENABLE_OTEL_GENAI_SEMCONV\u003c/code\u003e enabled, MLflow automatically translates them to follow the OTel GenAI semantic conventions, enabling seamless integration with OTel-compatible observability platforms while preserving GenAI-specific metadata. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21494\"\u003e#21494\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21495\"\u003e#21495\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e🔧 \u003cstrong\u003eOpencode Tracing Integration\u003c/strong\u003e: Debug smarter with Opencode CLI integration! Track and analyze code execution flows directly from your development workflow, making it easier to identify performance bottlenecks and trace issues back to specific code paths. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20133\"\u003e#20133\u003c/a\u003e, \u003ca href=\"https://github.com/joelrobin18\"\u003e\u003ccode\u003e@​joelrobin18\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e⚡ \u003cstrong\u003eUV Package Manager Support\u003c/strong\u003e: Automatic dependency inference now supports UV! MLflow automatically detects UV projects and captures exact, locked dependencies from your lockfile when logging models, ensuring reproducible environments. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20344\"\u003e#20344\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20935\"\u003e#20935\u003c/a\u003e, \u003ca href=\"https://github.com/debu-sinha\"\u003e\u003ccode\u003e@​debu-sinha\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e🔒 \u003cstrong\u003ePickle-Free Model Serialization\u003c/strong\u003e: Enhance security with pickle-free model formats! MLflow now supports safer model serialization using torch.export and skops formats, with improved controls when \u003ccode\u003eMLFLOW_ALLOW_PICKLE_DESERIALIZATION=False\u003c/code\u003e. Comprehensive documentation guides you through migrating existing models to pickle-free formats for production deployments. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21404\"\u003e#21404\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21188\"\u003e#21188\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20774\"\u003e#20774\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBreaking Changes\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ \u003cstrong\u003eTypeScript SDK Package Renaming\u003c/strong\u003e: The MLflow TypeScript SDK packages have been renamed to use npm organization scoping. If you're using the TypeScript SDK, update your \u003ccode\u003epackage.json\u003c/code\u003e dependencies and import statements: \u003ccode\u003emlflow-tracing\u003c/code\u003e → \u003ccode\u003e@mlflow/core\u003c/code\u003e, \u003ccode\u003emlflow-openai\u003c/code\u003e → \u003ccode\u003e@mlflow/openai\u003c/code\u003e, \u003ccode\u003emlflow-anthropic\u003c/code\u003e → \u003ccode\u003e@mlflow/anthropic\u003c/code\u003e, \u003ccode\u003emlflow-gemini\u003c/code\u003e → \u003ccode\u003e@mlflow/gemini\u003c/code\u003e. All packages are now at version \u003ccode\u003e0.2.0\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20792\"\u003e#20792\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eStay tuned for the full release, which will be packed with even more features and bugfixes.\u003c/p\u003e\n\u003cp\u003eTo try out this release candidate, please run:\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003epip install mlflow==3.11.0rc0\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003ev3.10.1\u003c/h2\u003e\n\u003cp\u003eMLflow 3.10.1 is a patch release that contains some minor feature enhancements, bug fixes, and documentation updates.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add try-it page on Gateway usage example modal (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21077\"\u003e#21077\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Filter gateway experiments from the experiment list page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21130\"\u003e#21130\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21191\"\u003e#21191\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Persist AI Gateway default passphrase security banner dismissal to localStorage (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21292\"\u003e#21292\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Demote unused parameters log message from WARNING to DEBUG in instructions judge (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21294\"\u003e#21294\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / UI] Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix judge builder instruction textarea (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21299\"\u003e#21299\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix group mode to aggregate \u0026quot;Additional runs\u0026quot; as \u0026quot;Unassigned\u0026quot; group in charts (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21155\"\u003e#21155\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix artifact download when workspaces are enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21074\"\u003e#21074\u003c/a\u003e, \u003ca href=\"https://github.com/timsolovev\"\u003e\u003ccode\u003e@​timsolovev\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix NOT NULL constraint on assessments.trace_id during trace export (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21348\"\u003e#21348\u003c/a\u003e, \u003ca href=\"https://github.com/dbczumar\"\u003e\u003ccode\u003e@​dbczumar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Fix 403 Forbidden for artifact list via query param when \u003ccode\u003edefault_permission=NO_PERMISSIONS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21220\"\u003e#21220\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [ML-63097] Fix broken LLM judge documentation links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21347\"\u003e#21347\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix Run Judge failed with litellm.InternalServerError: Invalid response object. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21262\"\u003e#21262\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Update Action menu: indentation to avoid confusion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21266\"\u003e#21266\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry] Fix MlflowClient.copy_model_version for the case that copy UC model across workspaces (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21212\"\u003e#21212\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mlflow/mlflow/blob/master/CHANGELOG.md\"\u003emlflow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eCHANGELOG\u003c/h1\u003e\n\u003ch2\u003e3.12.0 (2026-05-04)\u003c/h2\u003e\n\u003cp\u003eMLflow 3.12.0 includes several major features and improvements\u003c/p\u003e\n\u003ch3\u003eMajor New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e🖼️ Multimodal Tracing\u003c/strong\u003e: Users can now store multimodal content in tracing spans as artifact attachments instead of inline binary data. We've also patched the UI to support the new mlflow-attachment:// style URI, with rich rendering available for PDFs, audio, and images.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e🤖 Codex, Gemini, Qwen coding agent tracing support\u003c/strong\u003e: Similar to our Claude Code tracing integration, we've now added support for the Codex, Gemini, and Qwen coding agent platforms as well!\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e🛡️ Gateway guardrails\u003c/strong\u003e: You can now set guardrails on your gateway endpoints to prevent unsafe or non-compliant model inputs and outputs. Try it out in the MLflow UI!\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e⚡ Trace table pagination\u003c/strong\u003e: The traces tab is now paginated, rather than fetching all traces up to a limit of 1000. This improves initial load time, and makes the page feel more responsive overall.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Scoring] Deprecate \u003ccode\u003eenable_mlserver\u003c/code\u003e in pyfunc serving backend (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22994\"\u003e#22994\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Assorted Features \u0026amp; Improvements:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add coding agents section to AI Gateway quick start (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23006\"\u003e#23006\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] feat: record caller in gateway traces from request headers (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22926\"\u003e#22926\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Run guardrails on passthrough endpoints; skip \u003ccode\u003eresponse_format\u003c/code\u003e for non-chat payloads (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22856\"\u003e#22856\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Gateway: preserve client auth header for subscription-based CLI tools (\u003ccode\u003eclaude-cli\u003c/code\u003e, \u003ccode\u003eCodex-Desktop\u003c/code\u003e, \u003ccode\u003eGeminiCLI\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22915\"\u003e#22915\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Expose Codex and Qwen Code hooks as installable CLI binaries (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22853\"\u003e#22853\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking / UI] Add Portkey as a supported AI Gateway provider (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22830\"\u003e#22830\u003c/a\u003e, \u003ca href=\"https://github.com/sairavuri-sudo\"\u003e\u003ccode\u003e@​sairavuri-sudo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Cache successful basic-auth credential checks to eliminate per-request PBKDF2 (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22817\"\u003e#22817\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Add \u003ccode\u003elast_updated_at\u003c/code\u003e field to model catalog entries (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22838\"\u003e#22838\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Enable third-party scorer registration in OSS MLflow (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22634\"\u003e#22634\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Add platform-side telemetry fields to Gateway invocation and budget events (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22557\"\u003e#22557\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Auto-start SQL warehouse before V4/V5 MLflow tracing calls (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22798\"\u003e#22798\u003c/a\u003e, \u003ca href=\"https://github.com/artjen\"\u003e\u003ccode\u003e@​artjen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Migrate Claude Code tracing to TypeScript-based plugin for simpler installation and runtime handling. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22338\"\u003e#22338\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add TypeScript Qwen Code tracing via Stop hook (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22411\"\u003e#22411\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Support \u003ccode\u003emodel_kwargs\u003c/code\u003e in DeepEval scorers for LLM parameter control (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22494\"\u003e#22494\u003c/a\u003e, \u003ca href=\"https://github.com/debu-sinha\"\u003e\u003ccode\u003e@​debu-sinha\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Add Application Default Credentials auth mode for Vertex AI gateway (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22754\"\u003e#22754\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Reorganize Settings into section-based routing with sub-sidebar navigation (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22743\"\u003e#22743\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add TypeScript Codex CLI tracing via \u003ccode\u003enotify\u003c/code\u003e hook (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22410\"\u003e#22410\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Add Share button to trace detail view (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22608\"\u003e#22608\u003c/a\u003e, \u003ca href=\"https://github.com/alkispoly-db\"\u003e\u003ccode\u003e@​alkispoly-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Models] Add \u003ccode\u003emlflow.diffusers\u003c/code\u003e flavor for diffusion model LoRA adapters (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22253\"\u003e#22253\u003c/a\u003e, \u003ca href=\"https://github.com/Rasaboun\"\u003e\u003ccode\u003e@​Rasaboun\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add size limit for trace attachments (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22575\"\u003e#22575\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add \u003ccode\u003eGeminiCliTranslator\u003c/code\u003e for Gemini CLI OTLP span type mapping (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22409\"\u003e#22409\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add JSON OTLP encoding support for trace ingestion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22408\"\u003e#22408\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Extract \u003ccode\u003eservice.name\u003c/code\u003e from OTLP resource attributes for usage telemetry (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22407\"\u003e#22407\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add MLflow tracing spans to guardrail execution in gateway (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22581\"\u003e#22581\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Add rendering size guards for large media content (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22574\"\u003e#22574\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21037\"\u003e#21037\u003c/a\u003e Add presigned upload URL endpoint for S3 artifact uploads (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21039\"\u003e#21039\u003c/a\u003e, \u003ca href=\"https://github.com/henishborad\"\u003e\u003ccode\u003e@​henishborad\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Add Guardrails tab to endpoint editor (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22360\"\u003e#22360\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Add click-to-expand modal for trace attachment images (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22461\"\u003e#22461\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Enhance Gateway quick start cards with logos, multi-model options, and compact variant (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22513\"\u003e#22513\u003c/a\u003e, \u003ca href=\"https://github.com/xq-yin\"\u003e\u003ccode\u003e@​xq-yin\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add \u003ccode\u003e@​mlflow/vercel\u003c/code\u003e for better Vercel AI SDK tracing in Databricks UC (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22105\"\u003e#22105\u003c/a\u003e, \u003ca href=\"https://github.com/dbrx-euirim\"\u003e\u003ccode\u003e@​dbrx-euirim\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [UI] Refactor API keys page: bulk delete, inline drawer editing, consistent list pattern (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22485\"\u003e#22485\u003c/a\u003e, \u003ca href=\"https://github.com/xq-yin\"\u003e\u003ccode\u003e@​xq-yin\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/2627607e66982c6c422c6049acdb65aede496d90\"\u003e\u003ccode\u003e2627607\u003c/code\u003e\u003c/a\u003e update uv.lock (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22235\"\u003e#22235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/099fe52206cc376319cf05d345b2961fad6751f9\"\u003e\u003ccode\u003e099fe52\u003c/code\u003e\u003c/a\u003e bump version to rc1 (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22232\"\u003e#22232\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/0e2ae1bf48fb59fee1de3057e89b1732345b1971\"\u003e\u003ccode\u003e0e2ae1b\u003c/code\u003e\u003c/a\u003e Fix telemetry initialization and flush in job subprocesses (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22222\"\u003e#22222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/6da4f10c19cd551101767ae0e46e40875de6658c\"\u003e\u003ccode\u003e6da4f10\u003c/code\u003e\u003c/a\u003e Move native providers to non-LiteLLM in gateway UI (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22203\"\u003e#22203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/b934d2315e368d04a25439905b9a36f3d581f107\"\u003e\u003ccode\u003eb934d23\u003c/code\u003e\u003c/a\u003e Fix response parsing for older models (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22138\"\u003e#22138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/d2d92ee3c6f8e1f9b9e0956e2911ef7476cddbef\"\u003e\u003ccode\u003ed2d92ee\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eMLFLOW_ENABLE_INCREMENTAL_SPAN_EXPORT\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22182\"\u003e#22182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/aaad8d813bf68aeb9ae0f5a2095a58b40ae08ff5\"\u003e\u003ccode\u003eaaad8d8\u003c/code\u003e\u003c/a\u003e Remove notification and redirect to eval run (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22175\"\u003e#22175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/3f220eb61f07619ab9f063bb9bb83ffda5dde85e\"\u003e\u003ccode\u003e3f220eb\u003c/code\u003e\u003c/a\u003e Replace \u003ccode\u003etorch\u003c/code\u003e dependency group with \u003ccode\u003erequirements/torch.txt\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22192\"\u003e#22192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/1c65d9a909d9f68869826bcf55bd15dc050bb9da\"\u003e\u003ccode\u003e1c65d9a\u003c/code\u003e\u003c/a\u003e Edit LiteLLM mentions in docs (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22140\"\u003e#22140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/9a328e542a7ae576055bec6650cb0191b8f53d8e\"\u003e\u003ccode\u003e9a328e5\u003c/code\u003e\u003c/a\u003e Remove dynamic logs from workspace selector (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22180\"\u003e#22180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mlflow/mlflow/compare/v2.21.3...v3.11.0rc1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.19 to 0.0.27\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass parse offsets via constructors by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003eKludex/python-multipart#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd multipart header limits by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003eKludex/python-multipart#267\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27 (2026-04-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd multipart header limits \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003e#267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePass parse offsets via constructors \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003e#268\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.22 (2026-01-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop directory path from filename in \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://github.com/Kludex/python-multipart/commit/9433f4bbc9652bdde82bbe380984e32f8cfc89c4\"\u003e9433f4b\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.20 (2024-12-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/142\"\u003e#142\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/Kludex/python-multipart/commit/6d1d6892a6b01b25da6f3e7b097e8e06c57fb250\"\u003e\u003ccode\u003e6d1d689\u003c/code\u003e\u003c/a\u003e Version 0.0.27 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/0b10220b1555af068a2bc8b198022b1ae238200f\"\u003e\u003ccode\u003e0b10220\u003c/code\u003e\u003c/a\u003e Run CI on main branch pull requests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3e64f5f8caba0e5d391b0c1ad0f1c2edf9e8f911\"\u003e\u003ccode\u003e3e64f5f\u003c/code\u003e\u003c/a\u003e Add multipart header limits (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/eb109cc4eb8174f2a7efc1ba894b1bf6425c0b14\"\u003e\u003ccode\u003eeb109cc\u003c/code\u003e\u003c/a\u003e Pass parse offsets via constructors (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/78e29abb9a339598975beee093a770ec3033f76d\"\u003e\u003ccode\u003e78e29ab\u003c/code\u003e\u003c/a\u003e Bump pytest from 9.0.2 to 9.0.3 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b2ddd0982bdf0fe852e4f3baa12122d2827af46c\"\u003e\u003ccode\u003eb2ddd09\u003c/code\u003e\u003c/a\u003e fuzz: Enhance fuzzing capabilities with new chunked and boundary tests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.19...0.0.27\"\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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/FXGUNIT/TradersApp/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/FXGUNIT/TradersApp/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FXGUNIT%2FTradersApp/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"},{"uuid":"4404584307","node_id":"PR_kwDOPqaMus7Zb_C7","number":16,"state":"closed","title":"Bump the pip group across 4 directories with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-09T03:03:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-08T07:17:08.000Z","updated_at":"2026-05-09T03:03:56.000Z","time_to_close":71206,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":7,"packages":[{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"cryptography","old_version":"42.0.8","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"pillow","old_version":"10.3.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pyopenssl","old_version":"24.1.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"requests-hardened","old_version":"1.0.0b3","new_version":"1.2.1","repository_url":"https://github.com/saleor/requests-hardened"},{"name":"apache-airflow","old_version":"2.3.4","new_version":"3.2.1rc1","repository_url":"https://github.com/apache/airflow"},{"name":"uv","old_version":"0.5.10","new_version":"0.11.6","repository_url":"https://github.com/astral-sh/uv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 4 updates in the /ecosystem/home-assistant-core directory: [requests](https://github.com/psf/requests), [cryptography](https://github.com/pyca/cryptography), [pillow](https://github.com/python-pillow/Pillow) and [pyopenssl](https://github.com/pyca/pyopenssl).\nBumps the pip group with 1 update in the /ecosystem/saleor directory: [requests-hardened](https://github.com/saleor/requests-hardened).\nBumps the pip group with 1 update in the /scripts/requirements directory: [apache-airflow](https://github.com/apache/airflow).\nBumps the pip group with 1 update in the /scripts/scenarios directory: [uv](https://github.com/astral-sh/uv).\n\nUpdates `requests` from 2.32.3 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 42.0.8 to 46.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.7 - 2026-04-07\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could be\n  passed to APIs that accept Python buffers, which could lead to buffer\n  overflow. **CVE-2026-39892**\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.6.\n\u003cp\u003e.. _v46-0-6:\u003c/p\u003e\n\u003cp\u003e46.0.6 - 2026-03-25\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSECURITY ISSUE\u003c/strong\u003e: Fixed a bug where name constraints were not applied\nto peer names during verification when the leaf certificate contains a\nwildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\nincluding those used by the Web PKI. Credit to \u003cstrong\u003eOleh Konko (1seal)\u003c/strong\u003e for\nreporting the issue. \u003cstrong\u003eCVE-2026-34073\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-5:\u003c/p\u003e\n\u003cp\u003e46.0.5 - 2026-02-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* An attacker could create a malicious public key that reveals portions of your\n  private key when using certain uncommon elliptic curves (binary curves).\n  This version now includes additional security checks to prevent this attack.\n  This issue only affects binary elliptic curves, which are rarely used in\n  real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and\n  Atuin Automated Vulnerability Discovery Engine** for reporting the issue.\n  **CVE-2026-26007**\n* Support for ``SECT*`` binary elliptic curves is deprecated and will be\n  removed in the next release.\n\u003cp\u003e.. v46-0-4:\u003c/p\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDropped support for win_arm64 wheels\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-3:\u003c/p\u003e\n\u003cp\u003e46.0.3 - 2025-10-15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed compilation when using LibreSSL 4.2.0.\n\u003cp\u003e.. _v46-0-2:\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5\"\u003e\u003ccode\u003e622d672\u003c/code\u003e\u003c/a\u003e 46.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14602\"\u003e#14602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/91d728897bdad30cd5c79a2b23e207f1f050d587\"\u003e\u003ccode\u003e91d7288\u003c/code\u003e\u003c/a\u003e Cherry-pick \u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14542\"\u003e#14542\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14543\"\u003e#14543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/06e120e682cb200e3f7050c02f0bcdac90c4c6ad\"\u003e\u003ccode\u003e06e120e\u003c/code\u003e\u003c/a\u003e bump version for 46.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14289\"\u003e#14289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c\"\u003e\u003ccode\u003e0eebb9d\u003c/code\u003e\u003c/a\u003e EC check key on cofactor \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14287\"\u003e#14287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e\"\u003e\u003ccode\u003ebedf6e1\u003c/code\u003e\u003c/a\u003e fix openssl version on 46 branch (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/c0af4dd7b75921bbe9f1d41a03dbd4b64a9e3403\"\u003e\u003ccode\u003ec0af4dd\u003c/code\u003e\u003c/a\u003e release 46.0.3 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13681\"\u003e#13681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/99efe5ad150a56efadafacaffd0e3ee319373904\"\u003e\u003ccode\u003e99efe5a\u003c/code\u003e\u003c/a\u003e bump version for 46.0.2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13531\"\u003e#13531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e735cfc27502320101c130335c556394a125ba52\"\u003e\u003ccode\u003ee735cfc\u003c/code\u003e\u003c/a\u003e release 46.0.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13450\"\u003e#13450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/4e457ffba43a6d87efc63c33041e2081438dd8a4\"\u003e\u003ccode\u003e4e457ff\u003c/code\u003e\u003c/a\u003e Explicitly specify python in mac uv build invocation (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13447\"\u003e#13447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/42.0.8...46.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.3.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.3.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyopenssl` from 24.1.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst\"\u003epyopenssl's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0 (2026-03-15)\u003c/h2\u003e\n\u003cp\u003eBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eThe minimum \u003ccode\u003ecryptography\u003c/code\u003e version is now 46.0.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDeprecations:\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eChanges:\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using aws-lc instead of OpenSSL.\u003c/li\u003e\n\u003cli\u003eProperly raise an error if a DTLS cookie callback returned a cookie longer than \u003ccode\u003eDTLS1_COOKIE_LENGTH\u003c/code\u003e bytes. Previously this would result in a buffer-overflow. Credit to \u003cstrong\u003edark_haxor\u003c/strong\u003e for reporting the issue. \u003cstrong\u003eCVE-2026-27459\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eOpenSSL.SSL.Connection.get_group_name\u003c/code\u003e to determine which group name was negotiated.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.set_tlsext_servername_callback\u003c/code\u003e now handles exceptions raised in the callback by calling \u003ccode\u003esys.excepthook\u003c/code\u003e and returning a fatal TLS alert. Previously, exceptions were silently swallowed and the handshake would proceed as if the callback had succeeded. Credit to \u003cstrong\u003eLeury Castillo\u003c/strong\u003e for reporting this issue. \u003cstrong\u003eCVE-2026-27448\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.3.0 (2025-09-16)\u003c/h2\u003e\n\u003cp\u003eBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eDeprecations:\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eChanges:\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMaximum supported \u003ccode\u003ecryptography\u003c/code\u003e version is now 46.x.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.2.0 (2025-09-14)\u003c/h2\u003e\n\u003cp\u003eBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe minimum \u003ccode\u003ecryptography\u003c/code\u003e version is now 45.0.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDeprecations:\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eChanges:\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epyOpenSSL now sets \u003ccode\u003eSSL_MODE_ACCEPT_MOVING_WRITE_BUFFER\u003c/code\u003e on connections by default, matching CPython's behavior.\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/pyca/pyopenssl/commit/358cbf29c4e364c59930e53a270116249581eaa3\"\u003e\u003ccode\u003e358cbf2\u003c/code\u003e\u003c/a\u003e Prepare for 26.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1487\"\u003e#1487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a8d28e7069ca213049ccfbcc227ed9ef6080a15b\"\u003e\u003ccode\u003ea8d28e7\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1486\"\u003e#1486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/6fefff05561c0a5e8f668b4e029a6ba3adb7d89e\"\u003e\u003ccode\u003e6fefff0\u003c/code\u003e\u003c/a\u003e Add aws-lc compatibility to tests and CI (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1476\"\u003e#1476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a739f9661d09ec6cda448ad71ca3e6df0dce9d75\"\u003e\u003ccode\u003ea739f96\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1485\"\u003e#1485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/8b4c66b1b5649ce046665b151772d40c1cddd66a\"\u003e\u003ccode\u003e8b4c66b\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact in /.github/actions/upload-coverage (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1484\"\u003e#1484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/02a5c78435cd445a7d5ef20b354dba2b6abdac64\"\u003e\u003ccode\u003e02a5c78\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d9733878d67ee2ad94327768bb6dc416f7827443\"\u003e\u003ccode\u003ed973387\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1482\"\u003e#1482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/57f09bb4bb051d3bc2a1abd36e9525313d5cd408\"\u003e\u003ccode\u003e57f09bb\u003c/code\u003e\u003c/a\u003e Fix buffer overflow in DTLS cookie generation callback (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1479\"\u003e#1479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d41a814759a9fb49584ca8ab3f7295de49a85aa0\"\u003e\u003ccode\u003ed41a814\u003c/code\u003e\u003c/a\u003e Handle exceptions in set_tlsext_servername_callback callbacks (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1478\"\u003e#1478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/7b29beba7759f0b810b5d5375a50469c4f8947b3\"\u003e\u003ccode\u003e7b29beb\u003c/code\u003e\u003c/a\u003e Fix not using a cryptography wheel on uv (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/pyopenssl/compare/24.1.0...26.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests-hardened` from 1.0.0b3 to 1.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/saleor/requests-hardened/releases\"\u003erequests-hardened's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for pypy 3.10 by \u003ca href=\"https://github.com/NyanKiyoshi\"\u003e\u003ccode\u003e@​NyanKiyoshi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/55\"\u003esaleor/requests-hardened#55\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://github.com/saleor/requests-hardened/security/advisories/GHSA-vh75-fwv3-pqrh\"\u003eCVE-2026-42175\u003c/a\u003e - SSRF bypass via unfiltered RFC 6598 shared address space (100.64.0.0/10) by \u003ca href=\"https://github.com/NyanKiyoshi\"\u003e\u003ccode\u003e@​NyanKiyoshi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/saleor/requests-hardened/commit/b7403f88d3b3689e57435b75b51691a160aaeef5\"\u003ehttps://github.com/saleor/requests-hardened/commit/b7403f88d3b3689e57435b75b51691a160aaeef5\u003c/a\u003e and \u003ca href=\"https://github.com/saleor/requests-hardened/commit/a266b3958bb142bca515b3c230fdea19fbda327c\"\u003ehttps://github.com/saleor/requests-hardened/commit/a266b3958bb142bca515b3c230fdea19fbda327c\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/hits313\"\u003e\u003ccode\u003e@​hits313\u003c/code\u003e\u003c/a\u003e for the vulnerability finding and their responsible disclosure!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/saleor/requests-hardened/compare/v1.2.0...v1.2.1\"\u003ehttps://github.com/saleor/requests-hardened/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14 and dropped Python 3.9 support by \u003ca href=\"https://github.com/NyanKiyoshi\"\u003e\u003ccode\u003e@​NyanKiyoshi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/50\"\u003esaleor/requests-hardened#50\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/reneleonhardt\"\u003e\u003ccode\u003e@​reneleonhardt\u003c/code\u003e\u003c/a\u003e for initially working on the matter!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/saleor/requests-hardened/compare/v1.1.1...v1.2.0\"\u003ehttps://github.com/saleor/requests-hardened/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: publish wheels on PyPI by \u003ca href=\"https://github.com/NyanKiyoshi\"\u003e\u003ccode\u003e@​NyanKiyoshi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/49\"\u003esaleor/requests-hardened#49\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/saleor/requests-hardened/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/saleor/requests-hardened/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated all dependencies (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved support for PyPy 3.9 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for PyPy 3.11 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/saleor/requests-hardened/compare/v1.0.0...v1.1.0\"\u003ehttps://github.com/saleor/requests-hardened/compare/v1.0.0...v1.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003eChanges since v1.0.0b5\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for proxies in IP filter (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/35\"\u003esaleor/requests-hardened#35\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for HTTP redirect in IP filter (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/37\"\u003esaleor/requests-hardened#37\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8 and added support for Python 3.13 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/33\"\u003esaleor/requests-hardened#33\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded dependabot configuration (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/38\"\u003esaleor/requests-hardened#38\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTests: added missing docstrings to IP filtering error handling tests (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/34\"\u003esaleor/requests-hardened#34\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/saleor/requests-hardened/commit/985b19ee3fa0ea0fe9b5dd63ce7bc58b84dcba0b\"\u003e\u003ccode\u003e985b19e\u003c/code\u003e\u003c/a\u003e release: v1.2.1 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/60\"\u003e#60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/a266b3958bb142bca515b3c230fdea19fbda327c\"\u003e\u003ccode\u003ea266b39\u003c/code\u003e\u003c/a\u003e fix: test failures (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/61\"\u003e#61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/b7403f88d3b3689e57435b75b51691a160aaeef5\"\u003e\u003ccode\u003eb7403f8\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/4f784459e99e067b428a647041d9e97d79f8d720\"\u003e\u003ccode\u003e4f78445\u003c/code\u003e\u003c/a\u003e build: pin all actions (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/57\"\u003e#57\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/b1567a7b9d8dfbf0ed8cc551ec25ee4fba27b25c\"\u003e\u003ccode\u003eb1567a7\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump cryptography from 46.0.1 to 46.0.5 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/54\"\u003e#54\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/914f3aebef7ea07f7a02541e872ae738f3994671\"\u003e\u003ccode\u003e914f3ae\u003c/code\u003e\u003c/a\u003e chore: drop pypy 3.10 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/55\"\u003e#55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/f155584fc4ee9b11362a62d03bb9aaa44fffda6f\"\u003e\u003ccode\u003ef155584\u003c/code\u003e\u003c/a\u003e build(deps): bump urllib3 in the pip group across 1 directory (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/53\"\u003e#53\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/b4c33f1635d1b61969d6c335443a1b5e36876f57\"\u003e\u003ccode\u003eb4c33f1\u003c/code\u003e\u003c/a\u003e build(deps): bump urllib3 in the pip group across 1 directory (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/52\"\u003e#52\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/416ebea59c7e92378f91e8c144988b3c879c16d7\"\u003e\u003ccode\u003e416ebea\u003c/code\u003e\u003c/a\u003e release: v1.2.0 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/51\"\u003e#51\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/7c9622201b09bec3336bc72a0161c074100de4ef\"\u003e\u003ccode\u003e7c96222\u003c/code\u003e\u003c/a\u003e feat: add support for Python 3.14 and drop Python 3.9 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/50\"\u003e#50\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/saleor/requests-hardened/compare/v1.0.0b3...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apache-airflow` from 2.3.4 to 3.2.1rc1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/b457a3001f055dabbf73b8562026113ac9d91488\"\u003e\u003ccode\u003eb457a30\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/200a7e13a628316ad8020cfc31f5dff888d0e748\"\u003e\u003ccode\u003e200a7e1\u003c/code\u003e\u003c/a\u003e Update version to 3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3abf7e0d9fcdbedd9562184dd96171f7a5e5d5b3\"\u003e\u003ccode\u003e3abf7e0\u003c/code\u003e\u003c/a\u003e update release notes of 3.2.0 specifying \u003ccode\u003esqlalchemy[asyncio]\u0026gt;=2.0.48\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/6513\"\u003e#6513\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/daae7bbfef9e2fc19f01facd4d2b1c65e9495ae6\"\u003e\u003ccode\u003edaae7bb\u003c/code\u003e\u003c/a\u003e Restore \u003ccode\u003edeactivate_deleted_dags\u003c/code\u003e signature broken by \u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64245\"\u003e#64245\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65312\"\u003e#65312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/519c4f1cf2dc8e90ad910407895d86e7e74689de\"\u003e\u003ccode\u003e519c4f1\u003c/code\u003e\u003c/a\u003e fix: use Dag form when materializing asset (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64211\"\u003e#64211\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65303\"\u003e#65303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7c4dbf9ead4e2fd0eddb853fd5858517ba1431eb\"\u003e\u003ccode\u003e7c4dbf9\u003c/code\u003e\u003c/a\u003e Change default sort to 'id' for list task instances (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64168\"\u003e#64168\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65297\"\u003e#65297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7ba62fcc3924564c03b55da60ce3d6ba8c9882e6\"\u003e\u003ccode\u003e7ba62fc\u003c/code\u003e\u003c/a\u003e Fix zip DAG import errors being cleared during bundle refresh (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65296\"\u003e#65296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8a3af78363955dc4de4a74a57ed5143c999c3b7c\"\u003e\u003ccode\u003e8a3af78\u003c/code\u003e\u003c/a\u003e Remove outdated TODO comment about permissions (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64169\"\u003e#64169\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65295\"\u003e#65295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f6dc7714270808a0762b1fc6b77c500d23954ca3\"\u003e\u003ccode\u003ef6dc771\u003c/code\u003e\u003c/a\u003e fix(connection-model): RFC3896 \u003ccode\u003econn_type\u003c/code\u003e warning (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63167\"\u003e#63167\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65294\"\u003e#65294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f55ed5c070d77e7370a88763b10a53b38e09f5ee\"\u003e\u003ccode\u003ef55ed5c\u003c/code\u003e\u003c/a\u003e Add overridable metadata engine creation hooks in \u003ccode\u003esettings.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/62184\"\u003e#62184\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65\"\u003e#65\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/2.3.4...3.2.1rc1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uv` from 0.5.10 to 0.11.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/uv/releases\"\u003euv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.6\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003cp\u003eThis release resolves a low severity security advisory in which wheels with malformed RECORD entries could delete arbitrary files on uninstall. See \u003ca href=\"https://github.com/astral-sh/uv/security/advisories/GHSA-pjjw-68hj-v9mw\"\u003eGHSA-pjjw-68hj-v9mw\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDo not remove files outside the venv on uninstall (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18942\"\u003e#18942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate and heal wheel \u003ccode\u003eRECORD\u003c/code\u003e during installation (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18943\"\u003e#18943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid \u003ccode\u003euv cache clean\u003c/code\u003e errors due to Win32 path normalization (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18856\"\u003e#18856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall uv 0.11.6\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/uv/releases/download/0.11.6/uv-installer.sh | sh\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-installer.ps1 | iex\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload uv 0.11.6\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-apple-darwin.tar.gz\"\u003euv-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-apple-darwin.tar.gz\"\u003euv-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-pc-windows-msvc.zip\"\u003euv-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-i686-pc-windows-msvc.zip\"\u003euv-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-pc-windows-msvc.zip\"\u003euv-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-unknown-linux-gnu.tar.gz\"\u003euv-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-i686-unknown-linux-gnu.tar.gz\"\u003euv-i686-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-i686-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-powerpc64le-unknown-linux-gnu.tar.gz\"\u003euv-powerpc64le-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ePPC64LE Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-powerpc64le-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-riscv64gc-unknown-linux-gnu.tar.gz\"\u003euv-riscv64gc-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eRISCV Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-riscv64gc-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-s390x-unknown-linux-gnu.tar.gz\"\u003euv-s390x-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eS390x Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-s390x-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-unknown-linux-gnu.tar.gz\"\u003euv-x86_64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-armv7-unknown-linux-gnueabihf.tar.gz\"\u003euv-armv7-unknown-linux-gnueabihf.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARMv7 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-armv7-unknown-linux-gnueabihf.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-unknown-linux-musl.tar.gz\"\u003euv-aarch64-unknown-linux-musl.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 MUSL Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-unknown-linux-musl.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-i686-unknown-linux-musl.tar.gz\"\u003euv-i686-unknown-linux-musl.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 MUSL Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-i686-unknown-linux-musl.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-riscv64gc-unknown-linux-musl.tar.gz\"\u003euv-riscv64gc-unknown-linux-musl.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eRISCV MUSL Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-riscv64gc-unknown-linux-musl.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-unknown-linux-musl.tar.gz\"\u003euv-x86_64-unknown-linux-musl.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 MUSL Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-unknown-linux-musl.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-arm-unknown-linux-musleabihf.tar.gz\"\u003euv-arm-unknown-linux-musleabihf.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARMv6 MUSL Linux (Hardfloat)\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-arm-unknown-linux-musleabihf.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-armv7-unknown-linux-musleabihf.tar.gz\"\u003euv-armv7-unknown-linux-musleabihf.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARMv7 MUSL Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-armv7-unknown-linux-musleabihf.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/uv/blob/main/CHANGELOG.md\"\u003euv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003cp\u003eThis release resolves a low severity security advisory in which wheels with malformed RECORD entries could delete arbitrary files on uninstall. See \u003ca href=\"https://github.com/astral-sh/uv/security/advisories/GHSA-pjjw-68hj-v9mw\"\u003eGHSA-pjjw-68hj-v9mw\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDo not remove files outside the venv on uninstall (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18942\"\u003e#18942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate and heal wheel \u003ccode\u003eRECORD\u003c/code\u003e during installation (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18943\"\u003e#18943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid \u003ccode\u003euv cache clean\u003c/code\u003e errors due to Win32 path normalization (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18856\"\u003e#18856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.11.5\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-08.\u003c/p\u003e\n\u003ch3\u003ePython\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd CPython 3.13.13, 3.14.4, and 3.15.0a8 (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18908\"\u003e#18908\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ebuild_system.requires\u003c/code\u003e error message (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18911\"\u003e#18911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove trailing path separators in path normalization (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18915\"\u003e#18915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error messages for unsupported or invalid TLS certificates (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18924\"\u003e#18924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude-newer\u003c/code\u003e to \u003ccode\u003e[[tool.uv.index]]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18839\"\u003e#18839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003euv audit\u003c/code\u003e: add context/warnings for ignored vulnerabilities (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18905\"\u003e#18905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNormalize persisted fork markers before lock equality checks (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18612\"\u003e#18612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClear junction properly when uninstalling Python versions on Windows (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18815\"\u003e#18815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport error cleanly instead of panicking on TLS certificate error (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18904\"\u003e#18904\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove the legacy \u003ccode\u003ePIP_COMPATIBILITY.md\u003c/code\u003e redirect file (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18928\"\u003e#18928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003euv init example-bare --bare\u003c/code\u003e examples (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18822\"\u003e#18822\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18925\"\u003e#18925\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.11.4\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-07.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003e--upgrade-group\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18266\"\u003e#18266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMerge repeated archive URL hashes by version ID (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18841\"\u003e#18841\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/astral-sh/uv/commit/65950801cc3c609b65be34938bb407ab6e30a9fe\"\u003e\u003ccode\u003e6595080\u003c/code\u003e\u003c/a\u003e Bump version to 0.11.6 (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18948\"\u003e#18948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/7983c7a5bef236fd8a04580fcedae7bd5bde4cdb\"\u003e\u003ccode\u003e7983c7a\u003c/code\u003e\u003c/a\u003e Validate and heal RECORD during installation (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18943\"\u003e#18943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/b38439bfc731d5281e933656ce2e5b910da037b0\"\u003e\u003ccode\u003eb38439b\u003c/code\u003e\u003c/a\u003e Avoid \u003ccode\u003euv cache clean\u003c/code\u003e errors due to Win32 path normalization (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18856\"\u003e#18856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/a0e461ac44851f9a0f6e8974733e77d46f7a9ea9\"\u003e\u003ccode\u003ea0e461a\u003c/code\u003e\u003c/a\u003e Do not remove files outside the venv on uninstall (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18942\"\u003e#18942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/95eaa68c8df627eb915bc355831fd7d169d91fe3\"\u003e\u003ccode\u003e95eaa68\u003c/code\u003e\u003c/a\u003e Bump version to 0.11.5 (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18930\"\u003e#18930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/f6d67d57c1a9f17f7ab233654b55e061eb4bfd10\"\u003e\u003ccode\u003ef6d67d5\u003c/code\u003e\u003c/a\u003e Improve certificate loading error messages (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18924\"\u003e#18924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/39b83c30e0cdaed833e88564878376f9361987d2\"\u003e\u003ccode\u003e39b83c3\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eexclude-newer\u003c/code\u003e to \u003ccode\u003e[[tool.uv.index]]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18839\"\u003e#18839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/7924ba5b1419345dc5b9a9a16e6bcba2b59a41a6\"\u003e\u003ccode\u003e7924ba5\u003c/code\u003e\u003c/a\u003e uv audit: add context/warnings for ignored vulnerabilities (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18905\"\u003e#18905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/a352ce01eab5f19bbd5929f2a5f346187552ee7c\"\u003e\u003ccode\u003ea352ce0\u003c/code\u003e\u003c/a\u003e Remove the legacy PIP_COMPATIBILITY.md redirect file (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18928\"\u003e#18928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/33b633891181f768568bfc3196039d368417fe98\"\u003e\u003ccode\u003e33b6338\u003c/code\u003e\u003c/a\u003e Normalize persisted fork markers before lock equality checks (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18612\"\u003e#18612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/uv/compare/0.5.10...0.11.6\"\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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/XavierMP14/uv/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/XavierMP14/uv/pull/16","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/XavierMP14%2Fuv/issues/16","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/16/packages"},{"uuid":"4391116219","node_id":"PR_kwDOK56Ncs7YwJbg","number":484,"state":"closed","title":"Bump apache-airflow from 2.10.1 to 3.2.1rc1 in /images/airflow/2.10.1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-12T17:05:29.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-06T11:56:02.000Z","updated_at":"2026-05-12T17:05:39.000Z","time_to_close":536967,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"2.10.1","new_version":"3.2.1rc1","repository_url":"https://github.com/apache/airflow"}],"path":"/images/airflow/2.10.1","ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 2.10.1 to 3.2.1rc1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/b457a3001f055dabbf73b8562026113ac9d91488\"\u003e\u003ccode\u003eb457a30\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/200a7e13a628316ad8020cfc31f5dff888d0e748\"\u003e\u003ccode\u003e200a7e1\u003c/code\u003e\u003c/a\u003e Update version to 3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3abf7e0d9fcdbedd9562184dd96171f7a5e5d5b3\"\u003e\u003ccode\u003e3abf7e0\u003c/code\u003e\u003c/a\u003e update release notes of 3.2.0 specifying \u003ccode\u003esqlalchemy[asyncio]\u0026gt;=2.0.48\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/6513\"\u003e#6513\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/daae7bbfef9e2fc19f01facd4d2b1c65e9495ae6\"\u003e\u003ccode\u003edaae7bb\u003c/code\u003e\u003c/a\u003e Restore \u003ccode\u003edeactivate_deleted_dags\u003c/code\u003e signature broken by \u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64245\"\u003e#64245\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65312\"\u003e#65312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/519c4f1cf2dc8e90ad910407895d86e7e74689de\"\u003e\u003ccode\u003e519c4f1\u003c/code\u003e\u003c/a\u003e fix: use Dag form when materializing asset (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64211\"\u003e#64211\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65303\"\u003e#65303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7c4dbf9ead4e2fd0eddb853fd5858517ba1431eb\"\u003e\u003ccode\u003e7c4dbf9\u003c/code\u003e\u003c/a\u003e Change default sort to 'id' for list task instances (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64168\"\u003e#64168\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65297\"\u003e#65297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7ba62fcc3924564c03b55da60ce3d6ba8c9882e6\"\u003e\u003ccode\u003e7ba62fc\u003c/code\u003e\u003c/a\u003e Fix zip DAG import errors being cleared during bundle refresh (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65296\"\u003e#65296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8a3af78363955dc4de4a74a57ed5143c999c3b7c\"\u003e\u003ccode\u003e8a3af78\u003c/code\u003e\u003c/a\u003e Remove outdated TODO comment about permissions (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64169\"\u003e#64169\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65295\"\u003e#65295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f6dc7714270808a0762b1fc6b77c500d23954ca3\"\u003e\u003ccode\u003ef6dc771\u003c/code\u003e\u003c/a\u003e fix(connection-model): RFC3896 \u003ccode\u003econn_type\u003c/code\u003e warning (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63167\"\u003e#63167\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65294\"\u003e#65294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f55ed5c070d77e7370a88763b10a53b38e09f5ee\"\u003e\u003ccode\u003ef55ed5c\u003c/code\u003e\u003c/a\u003e Add overridable metadata engine creation hooks in \u003ccode\u003esettings.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/62184\"\u003e#62184\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65\"\u003e#65\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/2.10.1...3.2.1rc1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=2.10.1\u0026new-version=3.2.1rc1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/aws/amazon-mwaa-docker-images/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/aws/amazon-mwaa-docker-images/pull/484","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Famazon-mwaa-docker-images/issues/484","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/484/packages"},{"uuid":"4390824801","node_id":"PR_kwDOKDFbvM7YvMHB","number":23,"state":"open","title":"Bump apache-airflow from 2.10.3 to 3.2.1rc1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-06T11:04:01.000Z","updated_at":"2026-05-30T14:53:59.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"2.10.3","new_version":"3.2.1rc1","repository_url":"https://github.com/apache/airflow"}],"path":null,"ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 2.10.3 to 3.2.1rc1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/b457a3001f055dabbf73b8562026113ac9d91488\"\u003e\u003ccode\u003eb457a30\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/200a7e13a628316ad8020cfc31f5dff888d0e748\"\u003e\u003ccode\u003e200a7e1\u003c/code\u003e\u003c/a\u003e Update version to 3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3abf7e0d9fcdbedd9562184dd96171f7a5e5d5b3\"\u003e\u003ccode\u003e3abf7e0\u003c/code\u003e\u003c/a\u003e update release notes of 3.2.0 specifying \u003ccode\u003esqlalchemy[asyncio]\u0026gt;=2.0.48\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/6513\"\u003e#6513\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/daae7bbfef9e2fc19f01facd4d2b1c65e9495ae6\"\u003e\u003ccode\u003edaae7bb\u003c/code\u003e\u003c/a\u003e Restore \u003ccode\u003edeactivate_deleted_dags\u003c/code\u003e signature broken by \u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64245\"\u003e#64245\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65312\"\u003e#65312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/519c4f1cf2dc8e90ad910407895d86e7e74689de\"\u003e\u003ccode\u003e519c4f1\u003c/code\u003e\u003c/a\u003e fix: use Dag form when materializing asset (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64211\"\u003e#64211\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65303\"\u003e#65303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7c4dbf9ead4e2fd0eddb853fd5858517ba1431eb\"\u003e\u003ccode\u003e7c4dbf9\u003c/code\u003e\u003c/a\u003e Change default sort to 'id' for list task instances (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64168\"\u003e#64168\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65297\"\u003e#65297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7ba62fcc3924564c03b55da60ce3d6ba8c9882e6\"\u003e\u003ccode\u003e7ba62fc\u003c/code\u003e\u003c/a\u003e Fix zip DAG import errors being cleared during bundle refresh (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65296\"\u003e#65296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8a3af78363955dc4de4a74a57ed5143c999c3b7c\"\u003e\u003ccode\u003e8a3af78\u003c/code\u003e\u003c/a\u003e Remove outdated TODO comment about permissions (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64169\"\u003e#64169\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65295\"\u003e#65295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f6dc7714270808a0762b1fc6b77c500d23954ca3\"\u003e\u003ccode\u003ef6dc771\u003c/code\u003e\u003c/a\u003e fix(connection-model): RFC3896 \u003ccode\u003econn_type\u003c/code\u003e warning (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63167\"\u003e#63167\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65294\"\u003e#65294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f55ed5c070d77e7370a88763b10a53b38e09f5ee\"\u003e\u003ccode\u003ef55ed5c\u003c/code\u003e\u003c/a\u003e Add overridable metadata engine creation hooks in \u003ccode\u003esettings.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/62184\"\u003e#62184\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65\"\u003e#65\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/2.10.3...3.2.1rc1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=2.10.3\u0026new-version=3.2.1rc1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/profcomff/dwh-airflow/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/profcomff/dwh-airflow/pull/23","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/profcomff%2Fdwh-airflow/issues/23","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23/packages"},{"uuid":"4332951314","node_id":"PR_kwDOQyc5x87V0QBp","number":22,"state":"open","title":"chore(deps): bump apache-airflow from 3.1.0 to 3.2.1","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-27T03:49:39.000Z","updated_at":"2026-04-27T03:49:39.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"apache-airflow","old_version":"3.1.0","new_version":"3.2.1","repository_url":"https://github.com/apache/airflow"}],"path":null,"ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 3.1.0 to 3.2.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.1\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.1/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.1/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.1/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.1/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.1/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.1/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.1\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.1\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUsers who only have read access to DAGs will no longer be able to fetch data from the \u003ccode\u003e/dags\u003c/code\u003e endpoint, as it now requires additional permissions (\u003ccode\u003eDagAccessEntity.RUN\u003c/code\u003e, \u003ccode\u003eDagAccessEntity.HITL_DETAIL\u003c/code\u003e, and \u003ccode\u003eDagAccessEntity.TASK_INSTANCE\u003c/code\u003e). This change was made because the endpoint returns aggregated data from these multiple entities. Please update your custom user roles to include read access for DAG Runs, Task Instances, and HITL Details if those users should still have access to the \u003ccode\u003e/dags\u003c/code\u003e endpoint. (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64822\"\u003e#64822\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow UI theme config with only CSS overrides, icon only, or empty \u003ccode\u003e{}\u003c/code\u003e to restore OSS defaults. The \u003ccode\u003etokens\u003c/code\u003e field is now optional in the theme configuration. (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64552\"\u003e#64552\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eDEFAULT_LOGGING_CONFIG\u003c/code\u003e to use right \u003ccode\u003ekwargs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65412\"\u003e#65412\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65424\"\u003e#65424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix zip DAG import errors being cleared during bundle refresh (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65296\"\u003e#65296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edispose_orm()\u003c/code\u003e not disposing async engine on shutdown (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65274\"\u003e#65274\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65284\"\u003e#65284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eget_team_name_dep\u003c/code\u003e creating wasted async sessions when \u003ccode\u003emulti_team=False\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65275\"\u003e#65275\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65282\"\u003e#65282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix asset graph view leaking DAGs outside the user's permissions (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65273\"\u003e#65273\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65280\"\u003e#65280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix migration: add missing \u003ccode\u003edisable_sqlite_fkeys\u003c/code\u003e to migration 0108 (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65288\"\u003e#65288\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65290\"\u003e#65290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix heartbeat: add fast-path \u003ccode\u003eUPDATE\u003c/code\u003e to avoid row lock in the common case (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65029\"\u003e#65029\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65137\"\u003e#65137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUI: Fix deactivated state not shown for stale DAGs (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65214\"\u003e#65214\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65218\"\u003e#65218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix N+1 queries during DAG serialization with bulk prefetch (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64929\"\u003e#64929\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65208\"\u003e#65208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix serializer for empty string extra in connection (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65014\"\u003e#65014\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65215\"\u003e#65215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUI: Fix menu positioning for \u003ccode\u003edropdowns\u003c/code\u003e in connection forms (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65007\"\u003e#65007\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65085\"\u003e#65085\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65138\"\u003e#65138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUI: Fix \u003ccode\u003eSearchBar\u003c/code\u003e value not syncing with \u003ccode\u003edefaultValue\u003c/code\u003e changes (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65054\"\u003e#65054\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65140\"\u003e#65140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix SDK configuration to use \u003ccode\u003e$AIRFLOW_CONFIG\u003c/code\u003e env (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64936\"\u003e#64936\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65200\"\u003e#65200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSession\u003c/code\u003e staying opened between yields (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65179\"\u003e#65179\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65195\"\u003e#65195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSession\u003c/code\u003e leak from \u003ccode\u003eStreamingResponse\u003c/code\u003e API endpoints (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65162\"\u003e#65162\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65193\"\u003e#65193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix redirect loop when stale root-path \u003ccode\u003e_token\u003c/code\u003e cookie exists from older Airflow instance (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64955\"\u003e#64955\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65177\"\u003e#65177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e@task\u003c/code\u003e decorator to validate operator arg types at decoration time (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65041\"\u003e#65041\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65050\"\u003e#65050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix CLI error handling and exit codes for failed commands (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65052\"\u003e#65052\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65097\"\u003e#65097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eis_alive\u003c/code\u003e default to \u003ccode\u003eNone\u003c/code\u003e in \u003ccode\u003ejobs list\u003c/code\u003e CLI (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65065\"\u003e#65065\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65091\"\u003e#65091\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing \u003ccode\u003edag_id\u003c/code\u003e in \u003ccode\u003eget_task_instance\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64957\"\u003e#64957\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64968\"\u003e#64968\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65067\"\u003e#65067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUI: Fix cancel \u003ccode\u003edebounce\u003c/code\u003e on clear to prevent stale search value (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64893\"\u003e#64893\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64907\"\u003e#64907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix read out-of-order issue with send method in \u003ccode\u003eCommsDecoder\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64894\"\u003e#64894\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64946\"\u003e#64946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bulk connection delete banner (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64735\"\u003e#64735\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64961\"\u003e#64961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix migrations: move \u003ccode\u003eUPDATE\u003c/code\u003es inside \u003ccode\u003edisable_sqlite_fkeys\u003c/code\u003e in migration 0097 (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64876\"\u003e#64876\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64940\"\u003e#64940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix heartbeat to return 410 Gone when cleared \u003ccode\u003eTI\u003c/code\u003e exists in TIH (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/61631\"\u003e#61631\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64693\"\u003e#64693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix scheduler: skip asset-triggered Dags without \u003ccode\u003eSerializedDagModel\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64322\"\u003e#64322\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64738\"\u003e#64738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix N+1 query pattern in task instance states and count endpoints (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/60352\"\u003e#60352\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64695\"\u003e#64695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eTypeError\u003c/code\u003e in \u003ccode\u003eGET /dags/{dag_id}/tasks\u003c/code\u003e when \u003ccode\u003eorder_by\u003c/code\u003e field has \u003ccode\u003eNone\u003c/code\u003e values (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64384\"\u003e#64384\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64587\"\u003e#64587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUI: Fix duplicate nav sidebar when iframe navigates away from auth pages (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63873\"\u003e#63873\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64854\"\u003e#64854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUI: Fix Gantt view \u0026quot;Error invalid date\u0026quot; on running \u003ccode\u003eDagRun\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64752\"\u003e#64752\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64853\"\u003e#64853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003econnections import\u003c/code\u003e returning non-zero exit code on failure (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64416\"\u003e#64416\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64449\"\u003e#64449\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/apache/airflow/commit/e5968b88e45f2af9d1047a51188355af7cbe79f4\"\u003e\u003ccode\u003ee5968b8\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/039debbd21891fb581a77b3c5870d616941b4219\"\u003e\u003ccode\u003e039debb\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix graph view not auto-refreshing task states during DAG run (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/b38926999ff8f2c8322f82fe083317f834ed6c48\"\u003e\u003ccode\u003eb389269\u003c/code\u003e\u003c/a\u003e [v3-2-test] Split constraint update workflow for stable branches (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65526\"\u003e#65526\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/aa333101a9fefb7faa6945dad4d3c0e4a8899097\"\u003e\u003ccode\u003eaa33310\u003c/code\u003e\u003c/a\u003e [v3-2-test] Upgrade important CI environment (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65525\"\u003e#65525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0ceaba63ae749a2a26dda5997726168c11f62ad6\"\u003e\u003ccode\u003e0ceaba6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Lower-bind FAB provider, to latest line. (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65523\"\u003e#65523\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65524\"\u003e#65524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/01bbe9341772549893f5888a9473930e5159108a\"\u003e\u003ccode\u003e01bbe93\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d8c85589cccf56532305f67a61292133a5fd3366\"\u003e\u003ccode\u003ed8c8558\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix DEFAULT_LOGGING_CONFIG use right kwargs (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65412\"\u003e#65412\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65424\"\u003e#65424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/71fff84fc9d7451c958c440c10f4cc0b82ec51d3\"\u003e\u003ccode\u003e71fff84\u003c/code\u003e\u003c/a\u003e [v3-2-test] Close Catalan gap (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65078\"\u003e#65078\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65389\"\u003e#65389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/b88b049c8bac65a6667c939b216296381d30de4a\"\u003e\u003ccode\u003eb88b049\u003c/code\u003e\u003c/a\u003e [v3-2-test] Close German Translation Gaps 2026-04-15 (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65332\"\u003e#65332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/b457a3001f055dabbf73b8562026113ac9d91488\"\u003e\u003ccode\u003eb457a30\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/3.1.0...3.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=uv\u0026previous-version=3.1.0\u0026new-version=3.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/EvertonSA/airflow-yet-another-exporter/pull/22","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvertonSA%2Fairflow-yet-another-exporter/issues/22","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22/packages"},{"uuid":"4306680592","node_id":"PR_kwDOOK9uiM7UgKJU","number":211,"state":"open","title":"chore(deps): bump the pip group across 74 directories with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-22T04:23:40.000Z","updated_at":"2026-05-01T05:47:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":7,"packages":[{"name":"pytest","old_version":"7.4.0","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"python-dotenv","old_version":"1.0.0","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"lxml","old_version":"4.9.3","new_version":"6.1.0","repository_url":"https://github.com/lxml/lxml"},{"name":"apache-airflow","old_version":"2.6.3","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"},{"name":"cryptography","old_version":"40.0.2","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 2 updates in the /alloydb/notebooks directory: [pytest](https://github.com/pytest-dev/pytest) and [nbconvert](https://github.com/jupyter/nbconvert).\nBumps the pip group with 1 update in the /aml-ai directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /asset/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/api-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/cloud-client-temp directory: [pytest](https://github.com/pytest-dev/pytest) and [python-dotenv](https://github.com/theskumar/python-dotenv).\nBumps the pip group with 1 update in the /auth/downscoping directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/service-to-service directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /automl/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /batch directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-connection/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-datatransfer/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-migration/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-reservation/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/bigframes directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/bqml directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/continuous-queries directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/pandas-gbq-migration directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/pyarrow directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/quickstart directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/to_dataframe directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /billing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /blog/introduction_to_data_models_in_cloud_datastore directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cdn directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /cloud-media-livestream/keypublisher directory: [pytest](https://github.com/pytest-dev/pytest) and [lxml](https://github.com/lxml/lxml).\nBumps the pip group with 1 update in the /cloud_scheduler/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloud_tasks/http_queues directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloud_tasks/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloudbuild/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 5 updates in the /composer/2022_airflow_summit directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.0` | `1.2.2` |\n| [lxml](https://github.com/lxml/lxml) | `4.9.3` | `6.1.0` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n\nBumps the pip group with 1 update in the /composer/airflow_1_samples directory: [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 5 updates in the /composer/cicd_sample directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.0` | `1.2.2` |\n| [lxml](https://github.com/lxml/lxml) | `4.9.3` | `6.1.0` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n\nBumps the pip group with 1 update in the /composer/functions directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /composer/rest directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 5 updates in the /composer/workflows directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.4` | `9.0.3` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.2` |\n| [lxml](https://github.com/lxml/lxml) | `5.2.2` | `6.1.0` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.9.2` | `3.2.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `41.0.7` | `46.0.7` |\n\nBumps the pip group with 1 update in the /compute/api directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /compute/auth directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /compute/client_library directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/encryption directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /compute/load_balancing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /compute/metadata directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /compute/oslogin directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /connectgateway directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contact-center-insights/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /container/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /containeranalysis/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contentwarehouse/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/quickstart directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/v1beta1 directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/encryption-keys directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/extensible-templates directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /dataflow/gemma directory: [pytest](https://github.com/pytest-dev/pytest) and [keras](https://github.com/keras-team/keras).\nBumps the pip group with 1 update in the /dataflow/gemma-flex-template directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/run-inference directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datalabeling/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataplex/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataproc/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datastore/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow-cx directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /discoveryengine directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /gemma2 directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /iap directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 2 updates in the /media_cdn directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /notebooks directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /servicedirectory directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagecontrol directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagetransfer directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /talent directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /tpu directory: [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `pytest` from 8.3.3 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nbconvert` from 7.16.6 to 7.17.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyter/nbconvert/releases\"\u003enbconvert's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.17.1\u003c/h2\u003e\n\u003ch2\u003e7.17.1\u003c/h2\u003e\n\u003cp\u003eThis is a security release, fixing two CVEs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/security/advisories/GHSA-4c99-qj7h-p3vg\"\u003eCVE-2026-39377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/security/advisories/GHSA-7jqv-fw35-gmx9\"\u003eCVE-2026-39378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e(full advisories will be published seven days after release, on 2026-04-14).\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.17.0...b3b6ec01f872e9af8fd1769eb9cf1889c720ecf3\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configureable WebPDF JavaScript processing timeout \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2250\"\u003e#2250\u003c/a\u003e (\u003ca href=\"https://github.com/timkpaine\"\u003e\u003ccode\u003e@​timkpaine\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ePermissionError\u003c/code\u003e when checking template paths on shared filesystems \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2252\"\u003e#2252\u003c/a\u003e (\u003ca href=\"https://github.com/ctcjab\"\u003e\u003ccode\u003e@​ctcjab\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTweak webpdf template logic to fix duplicate extension problem \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2249\"\u003e#2249\u003c/a\u003e (\u003ca href=\"https://github.com/timkpaine\"\u003e\u003ccode\u003e@​timkpaine\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003especify python version for pre \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2276\"\u003e#2276\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\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/nbconvert/graphs/contributors?from=2026-01-29\u0026amp;to=2026-04-08\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/akhmerov\"\u003e\u003ccode\u003e@​akhmerov\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Aakhmerov+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Abollwyvl+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3ACarreau+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/ctcjab\"\u003e\u003ccode\u003e@​ctcjab\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Actcjab+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Adavidbrochart+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Ken-B\"\u003e\u003ccode\u003e@​Ken-B\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AKen-B+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Akrassowski+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mgeier\"\u003e\u003ccode\u003e@​mgeier\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Amgeier+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Aminrk+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mpacer\"\u003e\u003ccode\u003e@​mpacer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ampacer+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/MSeal\"\u003e\u003ccode\u003e@​MSeal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AMSeal+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/SylvainCorlay\"\u003e\u003ccode\u003e@​SylvainCorlay\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3ASylvainCorlay+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/takluyver\"\u003e\u003ccode\u003e@​takluyver\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Atakluyver+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/timkpaine\"\u003e\u003ccode\u003e@​timkpaine\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Atimkpaine+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev7.17.0\u003c/h2\u003e\n\u003ch2\u003e7.17.0\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.16.6...c9ac1d1040459ed1ff9eb34e9918ce5a87cf9d71\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for arbitrary browser arguments \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2227\"\u003e#2227\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix QtPNGExporter returning empty bytes on macOS \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2264\"\u003e#2264\u003c/a\u003e (\u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md\"\u003enbconvert's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.17.1\u003c/h2\u003e\n\u003cp\u003eThis is a security release, fixing two CVEs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/security/advisories/GHSA-4c99-qj7h-p3vg\"\u003eCVE-2026-39377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/security/advisories/GHSA-7jqv-fw35-gmx9\"\u003eCVE-2026-39378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e(full advisories will be published seven days after release, on 2026-04-14).\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.17.0...b3b6ec01f872e9af8fd1769eb9cf1889c720ecf3\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configureable WebPDF JavaScript processing timeout \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2250\"\u003e#2250\u003c/a\u003e (\u003ca href=\"https://github.com/timkpaine\"\u003e\u003ccode\u003e@​timkpaine\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ePermissionError\u003c/code\u003e when checking template paths on shared filesystems \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2252\"\u003e#2252\u003c/a\u003e (\u003ca href=\"https://github.com/ctcjab\"\u003e\u003ccode\u003e@​ctcjab\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTweak webpdf template logic to fix duplicate extension problem \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2249\"\u003e#2249\u003c/a\u003e (\u003ca href=\"https://github.com/timkpaine\"\u003e\u003ccode\u003e@​timkpaine\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003especify python version for pre \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2276\"\u003e#2276\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\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/nbconvert/graphs/contributors?from=2026-01-29\u0026amp;to=2026-04-08\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/akhmerov\"\u003e\u003ccode\u003e@​akhmerov\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Aakhmerov+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Abollwyvl+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3ACarreau+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/ctcjab\"\u003e\u003ccode\u003e@​ctcjab\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Actcjab+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Adavidbrochart+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Ken-B\"\u003e\u003ccode\u003e@​Ken-B\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AKen-B+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Akrassowski+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mgeier\"\u003e\u003ccode\u003e@​mgeier\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Amgeier+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Aminrk+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mpacer\"\u003e\u003ccode\u003e@​mpacer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ampacer+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/MSeal\"\u003e\u003ccode\u003e@​MSeal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AMSeal+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/SylvainCorlay\"\u003e\u003ccode\u003e@​SylvainCorlay\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3ASylvainCorlay+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/takluyver\"\u003e\u003ccode\u003e@​takluyver\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Atakluyver+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/timkpaine\"\u003e\u003ccode\u003e@​timkpaine\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Atimkpaine+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e7.17.0\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.16.6...c9ac1d1040459ed1ff9eb34e9918ce5a87cf9d71\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for arbitrary browser arguments \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2227\"\u003e#2227\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix QtPNGExporter returning empty bytes on macOS \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2264\"\u003e#2264\u003c/a\u003e (\u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVE-2025-53000: Secure Inkscape Windows path (registry first + block CWD) \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2261\"\u003e#2261\u003c/a\u003e (\u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/mberlanda\"\u003e\u003ccode\u003e@​mberlanda\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/salmankadaya\"\u003e\u003ccode\u003e@​salmankadaya\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/th3gowtham\"\u003e\u003ccode\u003e@​th3gowtham\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix get_export_names and get_exporter default args \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2228\"\u003e#2228\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePyPA-Compliant Summary \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2226\"\u003e#2226\u003c/a\u003e (\u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/78ed30837a607deab7cf0a12dca072bf3f63417a\"\u003e\u003ccode\u003e78ed308\u003c/code\u003e\u003c/a\u003e Publish 7.17.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/f090a64606fde4c7f87cbf478f51b4aa46a425ec\"\u003e\u003ccode\u003ef090a64\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/b3b6ec01f872e9af8fd1769eb9cf1889c720ecf3\"\u003e\u003ccode\u003eb3b6ec0\u003c/code\u003e\u003c/a\u003e chore: update pre-commit hooks (\u003ca href=\"https://redirect.github.com/jupyter/nbconvert/issues/2277\"\u003e#2277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/be4841f7da51c499b1937e41e6e71926dbe0daa3\"\u003e\u003ccode\u003ebe4841f\u003c/code\u003e\u003c/a\u003e ignore silly security lint in tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/26d57b295870f5572d9bd0535acee4a120339c10\"\u003e\u003ccode\u003e26d57b2\u003c/code\u003e\u003c/a\u003e fix type annotation on Lexer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/0e6b8ccabf2aca6c18fac8c574f22b7155f441fb\"\u003e\u003ccode\u003e0e6b8cc\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/ba5e5cdd737704388251fa55fa9e58f5752fa39d\"\u003e\u003ccode\u003eba5e5cd\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/1db0c88d865146ce02b6405a8d96753d3d0cd0c2\"\u003e\u003ccode\u003e1db0c88\u003c/code\u003e\u003c/a\u003e Specify python version for pre (\u003ca href=\"https://redirect.github.com/jupyter/nbconvert/issues/2276\"\u003e#2276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/7473fc3037a6317bff54380e3a7162d73bf089b3\"\u003e\u003ccode\u003e7473fc3\u003c/code\u003e\u003c/a\u003e chore: update pre-commit hooks (\u003ca href=\"https://redirect.github.com/jupyter/nbconvert/issues/2242\"\u003e#2242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/4322f7f290694929f414cefadc942111afad3762\"\u003e\u003ccode\u003e4322f7f\u003c/code\u003e\u003c/a\u003e Bump the actions group across 1 directory with 2 updates (\u003ca href=\"https://redirect.github.com/jupyter/nbconvert/issues/2273\"\u003e#2273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.16.6...v7.17.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\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.2 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/cod...\n\n_Description has been truncated_","html_url":"https://github.com/Reality2byte/python-docs-samples/pull/211","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reality2byte%2Fpython-docs-samples/issues/211","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/211/packages"},{"uuid":"4278696690","node_id":"PR_kwDOK56Ncs7THaT5","number":470,"state":"closed","title":"Bump apache-airflow from 2.9.2 to 3.2.0 in /tests/images/airflow/2.9.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-20T18:37:47.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-16T21:46:52.000Z","updated_at":"2026-04-20T18:37:57.000Z","time_to_close":334255,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"2.9.2","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":"/tests/images/airflow/2.9.2","ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 2.9.2 to 3.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/2.9.2...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=2.9.2\u0026new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/aws/amazon-mwaa-docker-images/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/aws/amazon-mwaa-docker-images/pull/470","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Famazon-mwaa-docker-images/issues/470","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/470/packages"},{"uuid":"4278629368","node_id":"PR_kwDOK56Ncs7THMs9","number":466,"state":"closed","title":"Bump apache-airflow from 2.10.1 to 3.2.0 in /tests/images/airflow/2.10.1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-20T18:37:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-16T21:30:22.000Z","updated_at":"2026-04-20T18:38:06.000Z","time_to_close":335255,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"2.10.1","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":"/tests/images/airflow/2.10.1","ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 2.10.1 to 3.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/2.10.1...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=2.10.1\u0026new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/aws/amazon-mwaa-docker-images/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/aws/amazon-mwaa-docker-images/pull/466","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Famazon-mwaa-docker-images/issues/466","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/466/packages"},{"uuid":"4271818341","node_id":"PR_kwDOO147D87SyHLP","number":31,"state":"closed","title":"Bump the pip group across 2 directories with 6 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-21T22:24:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-15T21:30:16.000Z","updated_at":"2026-04-21T22:24:51.000Z","time_to_close":521673,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":6,"packages":[{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"black","old_version":"26.1.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"apache-airflow","old_version":"3.1.7","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"},{"name":"cryptography","old_version":"46.0.5","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.26","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"tornado","old_version":"6.5.4","new_version":"6.5.5","repository_url":"https://github.com/tornadoweb/tornado"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 6 updates in the /iomete-airflow-plugin directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [black](https://github.com/psf/black) | `26.1.0` | `26.3.1` |\n| [apache-airflow](https://github.com/apache/airflow) | `3.1.7` | `3.2.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` | `46.0.7` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.26` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.4` | `6.5.5` |\n\nBumps the pip group with 1 update in the /py-hive-iomete directory: [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `pytest` from 9.0.2 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 26.1.0 to 26.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop evenloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop eventloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c6755bb741b6481d6b3d3bb563c83fa060db96c9\"\u003e\u003ccode\u003ec6755bb\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5046\"\u003e#5046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69973fd6950985fbeb1090d96da717dc4d8380b0\"\u003e\u003ccode\u003e69973fd\u003c/code\u003e\u003c/a\u003e Harden blackd browser-facing request handling (\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4937fe6cf241139ddbfc16b0bdbb5b422798909d\"\u003e\u003ccode\u003e4937fe6\u003c/code\u003e\u003c/a\u003e Fix some shenanigans with the cache file and IPython (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2e641d174469c505d5ae905e75d4c769597e681f\"\u003e\u003ccode\u003e2e641d1\u003c/code\u003e\u003c/a\u003e docs: remove outdated Black Playground references (\u003ca href=\"https://redirect.github.com/psf/black/issues/5044\"\u003e#5044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c014b22a2d5e0632587b47b81151658bddfa0b88\"\u003e\u003ccode\u003ec014b22\u003c/code\u003e\u003c/a\u003e Remove unused internal code (\u003ca href=\"https://redirect.github.com/psf/black/issues/5041\"\u003e#5041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0dae20b2d009f2f03de8696d06b0c947d3abafc9\"\u003e\u003ccode\u003e0dae20b\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5036\"\u003e#5036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c5c1cbddd92cecb554ac2a77a24139dd76831030\"\u003e\u003ccode\u003ec5c1cbd\u003c/code\u003e\u003c/a\u003e Minor release patches (\u003ca href=\"https://redirect.github.com/psf/black/issues/5035\"\u003e#5035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7e5a828c37d71b6a6666e28eed444816def6a8f4\"\u003e\u003ccode\u003e7e5a828\u003c/code\u003e\u003c/a\u003e docs: clarify relationship between Black style and PEP 8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5025\"\u003e#5025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69705deb8776e7c5e585668da106d1abe2cb8d77\"\u003e\u003ccode\u003e69705de\u003c/code\u003e\u003c/a\u003e docs: add clearer pyproject configuration guidance (\u003ca href=\"https://redirect.github.com/psf/black/issues/5026\"\u003e#5026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/35ea67920b7f6ac8e09be1c47278752b1e827f76\"\u003e\u003ccode\u003e35ea679\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5032\"\u003e#5032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.1.0...26.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apache-airflow` from 3.1.7 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/3.1.7...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 46.0.5 to 46.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.7 - 2026-04-07\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could be\n  passed to APIs that accept Python buffers, which could lead to buffer\n  overflow. **CVE-2026-39892**\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.6.\n\u003cp\u003e.. _v46-0-6:\u003c/p\u003e\n\u003cp\u003e46.0.6 - 2026-03-25\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSECURITY ISSUE\u003c/strong\u003e: Fixed a bug where name constraints were not applied\nto peer names during verification when the leaf certificate contains a\nwildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\nincluding those used by the Web PKI. Credit to \u003cstrong\u003eOleh Konko (1seal)\u003c/strong\u003e for\nreporting the issue. \u003cstrong\u003eCVE-2026-34073\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-5:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5\"\u003e\u003ccode\u003e622d672\u003c/code\u003e\u003c/a\u003e 46.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14602\"\u003e#14602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/91d728897bdad30cd5c79a2b23e207f1f050d587\"\u003e\u003ccode\u003e91d7288\u003c/code\u003e\u003c/a\u003e Cherry-pick \u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14542\"\u003e#14542\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14543\"\u003e#14543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.5...46.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.26\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\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/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\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/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d3a4698e0dc16cbd85f98076b2ebf9b696cd3604\"\u003e\u003ccode\u003ed3a4698\u003c/code\u003e\u003c/a\u003e Add MIME content type info to File (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/9a1ecbd074801fcd3911266f3f4442181d10ab92\"\u003e\u003ccode\u003e9a1ecbd\u003c/code\u003e\u003c/a\u003e Handle CTE values case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/ef2a0b94f95676ea6a7b77d2252b09f5797cb8ed\"\u003e\u003ccode\u003eef2a0b9\u003c/code\u003e\u003c/a\u003e Remove custom FormParser classes (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3a757d7cf209e654eb17cf7b7af868eed469f680\"\u003e\u003ccode\u003e3a757d7\u003c/code\u003e\u003c/a\u003e Ignore local Claude state (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/255\"\u003e#255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/55e739617db7c40e2cd04c5ad8c7acf2ed0a1d19\"\u003e\u003ccode\u003e55e7396\u003c/code\u003e\u003c/a\u003e fuzz: Add cifuzz (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/186\"\u003e#186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d6d1d111e7de9ce3d3f8623fe5f5e4201c0a5fd1\"\u003e\u003ccode\u003ed6d1d11\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/249\"\u003e#249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tornado` from 6.5.4 to 6.5.5\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.5.5\nreleases/v6.5.4\nreleases/v6.5.3\nreleases/v6.5.2\nreleases/v6.5.1\nreleases/v6.5.0\nreleases/v6.4.2\nreleases/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\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/7d6465056ceb7a054b3f64cf1c18271753b10482\"\u003e\u003ccode\u003e7d64650\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3586\"\u003e#3586\u003c/a\u003e from bdarnell/update-cibw\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/d05d59b8080a0d5d6a260994c7aad7049209d345\"\u003e\u003ccode\u003ed05d59b\u003c/code\u003e\u003c/a\u003e build: Bump cibuildwheel to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/c2f46732b0ad14bf0db4219c96a945f4b60205f5\"\u003e\u003ccode\u003ec2f4673\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3585\"\u003e#3585\u003c/a\u003e from bdarnell/release-655\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/e5f1aa4b6fa2c16b29024830227838fcb0c79b6f\"\u003e\u003ccode\u003ee5f1aa4\u003c/code\u003e\u003c/a\u003e Release notes and version bump for v6.5.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/78a046f99f89977dfc8ff5a1fe16d298afbeeaca\"\u003e\u003ccode\u003e78a046f\u003c/code\u003e\u003c/a\u003e httputil: Add CRLF to _FORBIDDEN_HEADER_CHARS_RE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/24a2d96ea115f663b223887deb0060f13974c104\"\u003e\u003ccode\u003e24a2d96\u003c/code\u003e\u003c/a\u003e web: Validate characters in all cookie attributes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/119a195e290c43ad2d63a2cf012c29d43d6ed839\"\u003e\u003ccode\u003e119a195\u003c/code\u003e\u003c/a\u003e httputil: Add limits on multipart form data parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tornadoweb/tornado/compare/v6.5.4...v6.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 3.2.1 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/iomete/iomete-integrations/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/iomete/iomete-integrations/pull/31","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/iomete%2Fiomete-integrations/issues/31","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/31/packages"},{"uuid":"4265425691","node_id":"PR_kwDOO-I9t87SeW-R","number":20,"state":"open","title":"chore(deps): bump the pip group across 74 directories with 6 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-15T00:03:29.000Z","updated_at":"2026-04-15T00:03:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":6,"packages":[{"name":"pytest","old_version":"7.4.0","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"requests","old_version":"2.31.0","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"pyopenssl","old_version":"23.2.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"cryptography","old_version":"40.0.2","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"apache-airflow","old_version":"2.6.3","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 1 update in the /alloydb/notebooks directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /aml-ai directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /asset/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/api-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/downscoping directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/service-to-service directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /automl/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /batch directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-connection/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-datatransfer/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-migration/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-reservation/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/bqml directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /bigquery/continuous-queries directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /bigquery/pandas-gbq-migration directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /billing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /blog/introduction_to_data_models_in_cloud_datastore directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cdn directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /cloud-media-livestream/keypublisher directory: [pytest](https://github.com/pytest-dev/pytest), [requests](https://github.com/psf/requests) and [pyopenssl](https://github.com/pyca/pyopenssl).\nBumps the pip group with 1 update in the /cloud_scheduler/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /cloud_tasks/http_queues directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /cloud_tasks/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloudbuild/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 5 updates in the /composer/2022_airflow_summit directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 2 updates in the /composer/airflow_1_samples directory: [pyopenssl](https://github.com/pyca/pyopenssl) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 5 updates in the /composer/cicd_sample directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 1 update in the /composer/functions directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /composer/rest directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 5 updates in the /composer/workflows directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.4` | `9.0.3` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `24.1.0` | `26.0.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `41.0.7` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.9.2` | `3.2.0` |\n\nBumps the pip group with 1 update in the /compute/api directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/auth directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /compute/client_library directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /compute/encryption directory: [pytest](https://github.com/pytest-dev/pytest), [requests](https://github.com/psf/requests) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /compute/load_balancing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/metadata directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 2 updates in the /compute/oslogin directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /connectgateway directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contact-center-insights/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /container/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /containeranalysis/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contentwarehouse/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/quickstart directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/v1beta1 directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/encryption-keys directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/extensible-templates directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/gemma directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/gemma-flex-template directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /dataflow/run-inference directory: [pytest](https://github.com/pytest-dev/pytest) and [transformers](https://github.com/huggingface/transformers).\nBumps the pip group with 1 update in the /dataflow/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datalabeling/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataplex/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataproc/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datastore/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datastore/cloud-ndb directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow-cx directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /discoveryengine directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dlp/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /documentai/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/bookstore-grpc directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/bookstore-grpc-transcoding directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/getting-started-grpc directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /gemma2 directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /iap directory: [pytest](https://github.com/pytest-dev/pytest), [requests](https://github.com/psf/requests) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 2 updates in the /media_cdn directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /notebooks directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /servicedirectory directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagecontrol directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagetransfer directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /talent directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /tpu directory: [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `pytest` from 8.3.3 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.4 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"ht...\n\n_Description has been truncated_","html_url":"https://github.com/ASISBusiness/python-docs-samples/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ASISBusiness%2Fpython-docs-samples/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"},{"uuid":"4259000808","node_id":"PR_kwDORP7Sec7SK8m-","number":33,"state":"closed","title":"Bump apache-airflow from 3.1.7 to 3.2.0 in /DDS Group Project","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-14T05:42:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-14T02:04:03.000Z","updated_at":"2026-04-14T05:42:44.000Z","time_to_close":13119,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"3.1.7","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":"/DDS Group Project","ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 3.1.7 to 3.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/3.1.7...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=uv\u0026previous-version=3.1.7\u0026new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/vuhcl/vinyl-management-system/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/vuhcl/vinyl-management-system/pull/33","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vuhcl%2Fvinyl-management-system/issues/33","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/33/packages"},{"uuid":"4258639598","node_id":"PR_kwDOPKAtms7SJ2Ss","number":24,"state":"closed","title":"chore(deps): bump the pip group across 69 directories with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-14T00:35:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-14T00:14:34.000Z","updated_at":"2026-04-14T00:35:58.000Z","time_to_close":1282,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":7,"packages":[{"name":"requests","old_version":"2.31.0","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"pytest","old_version":"7.4.0","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pyopenssl","old_version":"23.2.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"black","old_version":"23.1a1","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"cryptography","old_version":"40.0.2","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"apache-airflow","old_version":"2.6.3","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 2 updates in the /aml-ai directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /asset/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/api-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/downscoping directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/service-to-service directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /automl/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /batch directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-connection/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-datatransfer/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-migration/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-reservation/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/bqml directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /bigquery/continuous-queries directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/pandas-gbq-migration directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /billing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /blog/introduction_to_data_models_in_cloud_datastore directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cdn directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /cloud-media-livestream/keypublisher directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [pyopenssl](https://github.com/pyca/pyopenssl).\nBumps the pip group with 1 update in the /cloud_scheduler/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /cloud_tasks/http_queues directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloud_tasks/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloudbuild/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 6 updates in the /composer/2022_airflow_summit directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 2 updates in the /composer/airflow_1_samples directory: [pyopenssl](https://github.com/pyca/pyopenssl) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 6 updates in the /composer/cicd_sample directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 1 update in the /composer/functions directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /composer/rest directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 6 updates in the /composer/workflows directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.4` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `24.1.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `24.4.2` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `41.0.7` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.9.2` | `3.2.0` |\n\nBumps the pip group with 1 update in the /compute/api directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/auth directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/client_library directory: [pytest](https://github.com/pytest-dev/pytest) and [black](https://github.com/psf/black).\nBumps the pip group with 3 updates in the /compute/encryption directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /compute/load_balancing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/metadata directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/oslogin directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contact-center-insights/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /container/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /containeranalysis/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contentwarehouse/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/quickstart directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/v1beta1 directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/encryption-keys directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/extensible-templates directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/gemma directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/gemma-flex-template directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /dataflow/run-inference directory: [pytest](https://github.com/pytest-dev/pytest) and [transformers](https://github.com/huggingface/transformers).\nBumps the pip group with 1 update in the /dataflow/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datalabeling/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataproc/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datastore/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datastore/cloud-ndb directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow-cx directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /discoveryengine directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dlp/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /documentai/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/bookstore-grpc directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/bookstore-grpc-transcoding directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/getting-started-grpc directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /iap directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 2 updates in the /media_cdn directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /notebooks directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /servicedirectory directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagecontrol directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagetransfer directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /talent directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /tpu directory: [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `requests` from 2.32.2 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.2...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.2 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.2...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorr...\n\n_Description has been truncated_","html_url":"https://github.com/JohnDaWalka/python-docs-samples/pull/24","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnDaWalka%2Fpython-docs-samples/issues/24","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/24/packages"},{"uuid":"4258550652","node_id":"PR_kwDOO-I9t87SJkyK","number":15,"state":"open","title":"chore(deps): bump the pip group across 53 directories with 12 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T23:48:49.000Z","updated_at":"2026-04-13T23:48:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":12,"packages":[{"name":"pytest","old_version":"7.4.0","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"requests","old_version":"2.31.0","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"flask","old_version":"2.2.5","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"pyopenssl","old_version":"23.2.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"black","old_version":"23.1a1","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"cryptography","old_version":"40.0.2","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"google-cloud-aiplatform","old_version":"1.27.1","new_version":"1.133.0","repository_url":"https://github.com/googleapis/python-aiplatform"},{"name":"protobuf","old_version":"4.23.4","new_version":"5.29.6","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"apache-airflow","old_version":"2.6.3","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 2 updates in the /alloydb/notebooks directory: [pytest](https://github.com/pytest-dev/pytest) and [nbconvert](https://github.com/jupyter/nbconvert).\nBumps the pip group with 2 updates in the /aml-ai directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /asset/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/api-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/downscoping directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/service-to-service directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /automl/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /batch directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-connection/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-datatransfer/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-migration/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-reservation/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/bqml directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /bigquery/continuous-queries directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /bigquery/pandas-gbq-migration directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /billing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /blog/introduction_to_data_models_in_cloud_datastore directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cdn directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 4 updates in the /cloud-media-livestream/keypublisher directory: [pytest](https://github.com/pytest-dev/pytest), [requests](https://github.com/psf/requests), [flask](https://github.com/pallets/flask) and [pyopenssl](https://github.com/pyca/pyopenssl).\nBumps the pip group with 2 updates in the /cloud_scheduler/snippets directory: [pytest](https://github.com/pytest-dev/pytest) and [flask](https://github.com/pallets/flask).\nBumps the pip group with 2 updates in the /cloud_tasks/http_queues directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /cloud_tasks/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloudbuild/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 9 updates in the /composer/2022_airflow_summit directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [flask](https://github.com/pallets/flask) | `2.2.5` | `3.1.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) | `1.27.1` | `1.133.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `4.23.4` | `5.29.6` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 4 updates in the /composer/airflow_1_samples directory: [flask](https://github.com/pallets/flask), [pyopenssl](https://github.com/pyca/pyopenssl), [cryptography](https://github.com/pyca/cryptography) and [protobuf](https://github.com/protocolbuffers/protobuf).\nBumps the pip group with 9 updates in the /composer/cicd_sample directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [flask](https://github.com/pallets/flask) | `2.2.5` | `3.1.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) | `1.27.1` | `1.133.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `4.23.4` | `5.29.6` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 1 update in the /composer/functions directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /composer/rest directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /compute/api directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/auth directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 2 updates in the /compute/client_library directory: [pytest](https://github.com/pytest-dev/pytest) and [black](https://github.com/psf/black).\nBumps the pip group with 3 updates in the /compute/encryption directory: [pytest](https://github.com/pytest-dev/pytest), [requests](https://github.com/psf/requests) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /compute/load_balancing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/metadata directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 2 updates in the /compute/oslogin directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /contact-center-insights/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 4 updates in the /dataflow/gemma directory: [pytest](https://github.com/pytest-dev/pytest), [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform), [protobuf](https://github.com/protocolbuffers/protobuf) and [keras](https://github.com/keras-team/keras).\nBumps the pip group with 2 updates in the /dataflow/gemma-flex-template directory: [pytest](https://github.com/pytest-dev/pytest) and [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform).\nBumps the pip group with 3 updates in the /dataflow/run-inference directory: [pytest](https://github.com/pytest-dev/pytest), [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) and [transformers](https://github.com/huggingface/transformers).\nBumps the pip group with 2 updates in the /datastore/cloud-ndb directory: [pytest](https://github.com/pytest-dev/pytest) and [flask](https://github.com/pallets/flask).\nBumps the pip group with 2 updates in the /dialogflow directory: [pytest](https://github.com/pytest-dev/pytest) and [flask](https://github.com/pallets/flask).\nBumps the pip group with 2 updates in the /dialogflow-cx directory: [pytest](https://github.com/pytest-dev/pytest) and [flask](https://github.com/pallets/flask).\nBumps the pip group with 1 update in the /discoveryengine directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /gemma2 directory: [pytest](https://github.com/pytest-dev/pytest), [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) and [protobuf](https://github.com/protocolbuffers/protobuf).\nBumps the pip group with 4 updates in the /iap directory: [pytest](https://github.com/pytest-dev/pytest), [requests](https://github.com/psf/requests), [flask](https://github.com/pallets/flask) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 2 updates in the /media_cdn directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /notebooks directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /servicedirectory directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagecontrol directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagetransfer directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /talent directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /tpu directory: [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `pytest` from 8.3.3 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nbconvert` from 7.16.6 to 7.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyter/nbconvert/releases\"\u003enbconvert's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.17.0\u003c/h2\u003e\n\u003ch2\u003e7.17.0\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.16.6...c9ac1d1040459ed1ff9eb34e9918ce5a87cf9d71\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for arbitrary browser arguments \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2227\"\u003e#2227\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix QtPNGExporter returning empty bytes on macOS \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2264\"\u003e#2264\u003c/a\u003e (\u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVE-2025-53000: Secure Inkscape Windows path (registry first + block CWD) \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2261\"\u003e#2261\u003c/a\u003e (\u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/mberlanda\"\u003e\u003ccode\u003e@​mberlanda\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/salmankadaya\"\u003e\u003ccode\u003e@​salmankadaya\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/th3gowtham\"\u003e\u003ccode\u003e@​th3gowtham\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix get_export_names and get_exporter default args \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2228\"\u003e#2228\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePyPA-Compliant Summary \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2226\"\u003e#2226\u003c/a\u003e (\u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eavoid cov environment on free-threaded Pythons \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2267\"\u003e#2267\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate pre-commit, and fix all issues. \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2238\"\u003e#2238\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop test on 3.9, test on 3.13, 3.14, 3.14t \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2237\"\u003e#2237\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 2 updates \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2231\"\u003e#2231\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003e@flaky.flaky\u003c/code\u003e decorate with pytest marker \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2229\"\u003e#2229\u003c/a\u003e (\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate to mermaid 11.10.0 \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2224\"\u003e#2224\u003c/a\u003e (\u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8, fix the CI tests \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2221\"\u003e#2221\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\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\u003eUse \u003ccode\u003eintersphinx_registry\u003c/code\u003e \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2232\"\u003e#2232\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\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/nbconvert/graphs/contributors?from=2025-01-28\u0026amp;to=2026-01-29\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Abollwyvl+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3ACarreau+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ah3pdesign+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ahackowitz-af+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Akrassowski+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mberlanda\"\u003e\u003ccode\u003e@​mberlanda\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Amberlanda+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Amgorny+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Aminrk+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/MSeal\"\u003e\u003ccode\u003e@​MSeal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AMSeal+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AQuLogic+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/salmankadaya\"\u003e\u003ccode\u003e@​salmankadaya\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Asalmankadaya+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ashreve+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/th3gowtham\"\u003e\u003ccode\u003e@​th3gowtham\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ath3gowtham+updated%3A2025-01-28..2026-01-29\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/nbconvert/blob/main/CHANGELOG.md\"\u003enbconvert's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.17.0\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.16.6...c9ac1d1040459ed1ff9eb34e9918ce5a87cf9d71\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for arbitrary browser arguments \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2227\"\u003e#2227\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix QtPNGExporter returning empty bytes on macOS \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2264\"\u003e#2264\u003c/a\u003e (\u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVE-2025-53000: Secure Inkscape Windows path (registry first + block CWD) \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2261\"\u003e#2261\u003c/a\u003e (\u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/mberlanda\"\u003e\u003ccode\u003e@​mberlanda\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/salmankadaya\"\u003e\u003ccode\u003e@​salmankadaya\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/th3gowtham\"\u003e\u003ccode\u003e@​th3gowtham\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix get_export_names and get_exporter default args \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2228\"\u003e#2228\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePyPA-Compliant Summary \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2226\"\u003e#2226\u003c/a\u003e (\u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eavoid cov environment on free-threaded Pythons \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2267\"\u003e#2267\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate pre-commit, and fix all issues. \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2238\"\u003e#2238\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop test on 3.9, test on 3.13, 3.14, 3.14t \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2237\"\u003e#2237\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 2 updates \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2231\"\u003e#2231\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003e@flaky.flaky\u003c/code\u003e decorate with pytest marker \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2229\"\u003e#2229\u003c/a\u003e (\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate to mermaid 11.10.0 \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2224\"\u003e#2224\u003c/a\u003e (\u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8, fix the CI tests \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2221\"\u003e#2221\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\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\u003eUse \u003ccode\u003eintersphinx_registry\u003c/code\u003e \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2232\"\u003e#2232\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\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/nbconvert/graphs/contributors?from=2025-01-28\u0026amp;to=2026-01-29\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Abollwyvl+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3ACarreau+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ah3pdesign+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ahackowitz-af+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Akrassowski+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mberlanda\"\u003e\u003ccode\u003e@​mberlanda\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Amberlanda+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Amgorny+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Aminrk+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/MSeal\"\u003e\u003ccode\u003e@​MSeal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AMSeal+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AQuLogic+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/salmankadaya\"\u003e\u003ccode\u003e@​salmankadaya\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Asalmankadaya+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ashreve+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/th3gowtham\"\u003e\u003ccode\u003e@​th3gowtham\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ath3gowtham+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/21b35d85b46f5ff0956d3d088a52b9bef00e8196\"\u003e\u003ccode\u003e21b35d8\u003c/code\u003e\u003c/a\u003e Publish 7.17.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/c9ac1d1040459ed1ff9eb34e9918ce5a87cf9d71\"\u003e\u003ccode\u003ec9ac1d1\u003c/code\u003e\u003c/a\u003e Fix CVE-2025-53000: Secure Inkscape Windows path (registry first + block CWD)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/b13276d80ae6fadbfda981304810e26f421c4ced\"\u003e\u003ccode\u003eb13276d\u003c/code\u003e\u003c/a\u003e avoid cov environment on free-threaded Pythons (\u003ca href=\"https://redirect.github.com/jupyter/nbconvert/issues/2267\"\u003e#2267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/7c7055fe833fe9832e6f9a64fa5f67d66692c8d6\"\u003e\u003ccode\u003e7c7055f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/74f3ddd37ef4b7ffb5eee9acbf52062217c15852\"\u003e\u003ccode\u003e74f3ddd\u003c/code\u003e\u003c/a\u003e Fix QtPNGExporter returning empty bytes on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/216550b2aae4c329f4dab597a96ae7cac30de79a\"\u003e\u003ccode\u003e216550b\u003c/code\u003e\u003c/a\u003e fix links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/39777ac5716350e994171d025a7369c58b0afc8c\"\u003e\u003ccode\u003e39777ac\u003c/code\u003e\u003c/a\u003e try to comment fialing test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/7b591ca526f2598dbae3256a53765659c3edcf14\"\u003e\u003ccode\u003e7b591ca\u003c/code\u003e\u003c/a\u003e ruff-check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/6ec7638a3dc7a0bc2c533c116202d7f9b07ce9d9\"\u003e\u003ccode\u003e6ec7638\u003c/code\u003e\u003c/a\u003e parent\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/59414b36f94e318d4207e8af863167047d936c19\"\u003e\u003ccode\u003e59414b3\u003c/code\u003e\u003c/a\u003e fix mypy\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.16.6...v7.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.4 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca ...\n\n_Description has been truncated_","html_url":"https://github.com/ASISBusiness/python-docs-samples/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ASISBusiness%2Fpython-docs-samples/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"},{"uuid":"4258521144","node_id":"PR_kwDOOK9uiM7SJer9","number":181,"state":"closed","title":"chore(deps): bump the pip group across 67 directories with 8 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-13T23:46:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T23:40:49.000Z","updated_at":"2026-04-13T23:46:54.000Z","time_to_close":363,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":8,"packages":[{"name":"requests","old_version":"2.31.0","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"pytest","old_version":"7.4.0","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pyopenssl","old_version":"23.2.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"black","old_version":"23.1a1","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"cryptography","old_version":"40.0.2","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"apache-airflow","old_version":"2.6.3","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 2 updates in the /aml-ai directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /appengine/standard/firebase/firenotes/backend directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /appengine/standard_python3/building-an-app/building-an-app-1 directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /asset/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/api-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/cloud-client-temp directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/custom-credentials/okta directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/downscoping directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/service-to-service directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /automl/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /batch directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-connection/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-datatransfer/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-migration/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-reservation/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/bqml directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /bigquery/continuous-queries directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/pandas-gbq-migration directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/pyarrow directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/quickstart directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/to_dataframe directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /billing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /blog/introduction_to_data_models_in_cloud_datastore directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cdn directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /cloud-media-livestream/keypublisher directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [pyopenssl](https://github.com/pyca/pyopenssl).\nBumps the pip group with 1 update in the /cloud_scheduler/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /cloud_tasks/http_queues directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloud_tasks/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloudbuild/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 6 updates in the /composer/2022_airflow_summit directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 2 updates in the /composer/airflow_1_samples directory: [pyopenssl](https://github.com/pyca/pyopenssl) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 6 updates in the /composer/cicd_sample directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 1 update in the /composer/functions directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /composer/rest directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 6 updates in the /composer/workflows directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.4` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `24.1.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `24.4.2` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `41.0.7` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.9.2` | `3.2.0` |\n\nBumps the pip group with 1 update in the /compute/api directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/auth directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/client_library directory: [pytest](https://github.com/pytest-dev/pytest) and [black](https://github.com/psf/black).\nBumps the pip group with 3 updates in the /compute/encryption directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /compute/load_balancing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/metadata directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/oslogin directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contact-center-insights/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /container/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /containeranalysis/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/gemma directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /dataflow/run-inference directory: [pytest](https://github.com/pytest-dev/pytest) and [transformers](https://github.com/huggingface/transformers).\nBumps the pip group with 1 update in the /datastore/samples/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow-cx directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /discoveryengine directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /genai/bounding_box directory: [pytest](https://github.com/pytest-dev/pytest) and [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 2 updates in the /genai/code_execution directory: [pytest](https://github.com/pytest-dev/pytest) and [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 2 updates in the /genai/image_generation directory: [pytest](https://github.com/pytest-dev/pytest) and [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 2 updates in the /genai/tools directory: [pytest](https://github.com/pytest-dev/pytest) and [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 3 updates in the /iap directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /logging/samples/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /media_cdn directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /notebooks directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /servicedirectory directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storage/samples/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagecontrol directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagetransfer directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /talent directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /tpu directory: [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `requests` from 2.32.4 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.27.1 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.2 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\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.2 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003cc...\n\n_Description has been truncated_","html_url":"https://github.com/Reality2byte/python-docs-samples/pull/181","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reality2byte%2Fpython-docs-samples/issues/181","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/181/packages"},{"uuid":"4258499144","node_id":"PR_kwDOO-I9t87SJaNc","number":14,"state":"open","title":"chore(deps): bump the pip group across 67 directories with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T23:35:02.000Z","updated_at":"2026-04-14T01:12:58.483Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":7,"packages":[{"name":"requests","old_version":"2.31.0","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"pytest","old_version":"7.4.0","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pyopenssl","old_version":"23.2.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"black","old_version":"23.1a1","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"cryptography","old_version":"40.0.2","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"apache-airflow","old_version":"2.6.3","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 2 updates in the /aml-ai directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /asset/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/api-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/downscoping directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/service-to-service directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /automl/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /batch directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-connection/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-datatransfer/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-migration/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-reservation/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/bqml directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /bigquery/continuous-queries directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/pandas-gbq-migration directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /billing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /blog/introduction_to_data_models_in_cloud_datastore directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cdn directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /cloud-media-livestream/keypublisher directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [pyopenssl](https://github.com/pyca/pyopenssl).\nBumps the pip group with 1 update in the /cloud_scheduler/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /cloud_tasks/http_queues directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloud_tasks/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloudbuild/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 6 updates in the /composer/2022_airflow_summit directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 2 updates in the /composer/airflow_1_samples directory: [pyopenssl](https://github.com/pyca/pyopenssl) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 6 updates in the /composer/cicd_sample directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 1 update in the /composer/functions directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /composer/rest directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /compute/api directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/auth directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/client_library directory: [pytest](https://github.com/pytest-dev/pytest) and [black](https://github.com/psf/black).\nBumps the pip group with 3 updates in the /compute/encryption directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /compute/load_balancing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/metadata directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/oslogin directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contact-center-insights/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /container/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /containeranalysis/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contentwarehouse/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/quickstart directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/v1beta1 directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/encryption-keys directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/extensible-templates directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/gemma directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /dataflow/run-inference directory: [pytest](https://github.com/pytest-dev/pytest) and [transformers](https://github.com/huggingface/transformers).\nBumps the pip group with 1 update in the /dataflow/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datalabeling/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataproc/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datastore/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datastore/cloud-ndb directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow-cx directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /discoveryengine directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dlp/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /documentai/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/bookstore-grpc directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/bookstore-grpc-transcoding directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/getting-started-grpc directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /iap directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 2 updates in the /media_cdn directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /notebooks directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /servicedirectory directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagecontrol directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagetransfer directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /talent directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /tpu directory: [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `requests` from 2.32.4 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.4 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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 compati...\n\n_Description has been truncated_","html_url":"https://github.com/ASISBusiness/python-docs-samples/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ASISBusiness%2Fpython-docs-samples/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"},{"uuid":"4241860736","node_id":"PR_kwDOOZbJW87Rk2bO","number":28,"state":"closed","title":"Bump apache-airflow from 3.1.8 to 3.2.0 in /airflow","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-10T23:00:48.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-10T21:38:59.000Z","updated_at":"2026-04-10T23:00:50.000Z","time_to_close":4909,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"3.1.8","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":"/airflow","ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 3.1.8 to 3.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/3.1.8...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=3.1.8\u0026new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/Peippo1/CampaignForge-AI/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/Peippo1/CampaignForge-AI/pull/28","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peippo1%2FCampaignForge-AI/issues/28","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/28/packages"},{"uuid":"4241347433","node_id":"PR_kwDOK56Ncs7RjSoY","number":455,"state":"closed","title":"Bump apache-airflow from 3.0.6 to 3.2.0 in /tests/images/airflow/3.0.6","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-20T18:38:10.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-10T19:35:21.000Z","updated_at":"2026-04-20T18:38:19.000Z","time_to_close":860569,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"3.0.6","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":"/tests/images/airflow/3.0.6","ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 3.0.6 to 3.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/3.0.6...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=3.0.6\u0026new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/aws/amazon-mwaa-docker-images/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/aws/amazon-mwaa-docker-images/pull/455","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Famazon-mwaa-docker-images/issues/455","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/455/packages"},{"uuid":"4241340290","node_id":"PR_kwDOA372XM7RjRNB","number":52,"state":"closed","title":"Bump apache-airflow from 3.1.7 to 3.2.0 in /Udemy/MLOps/Sources/mlops_project_final","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-06T09:03:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-10T19:34:08.000Z","updated_at":"2026-05-06T09:03:46.000Z","time_to_close":2208576,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"3.1.7","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":"/Udemy/MLOps/Sources/mlops_project_final","ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 3.1.7 to 3.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/3.1.7...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=3.1.7\u0026new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/AndersonPaschoalon/Online-Courses/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/AndersonPaschoalon/Online-Courses/pull/52","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndersonPaschoalon%2FOnline-Courses/issues/52","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/52/packages"},{"uuid":"4241340234","node_id":"PR_kwDOPrdRLs7RjRMV","number":6,"state":"closed","title":"Bump apache-airflow from 3.0.6 to 3.2.0 in /performance in the pip group across 1 directory","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-21T22:54:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-10T19:34:07.000Z","updated_at":"2026-04-21T22:54:48.000Z","time_to_close":962439,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"3.0.6","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":"/performance in the pip group across 1 directory","ecosystem":"pip"},"body":"Bumps the pip group with 1 update in the /performance directory: [apache-airflow](https://github.com/apache/airflow).\n\nUpdates `apache-airflow` from 3.0.6 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/3.0.6...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=3.0.6\u0026new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/dporkka/airflow/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/dporkka/airflow/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dporkka%2Fairflow/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}],"issue_packages":[{"old_version":"2.10.2","new_version":"3.2.1rc1","update_type":"major","path":null,"pr_created_at":"2026-05-23T08:48:02.000Z","version_change":"2.10.2 → 3.2.1rc1","issue":{"uuid":"4507542660","node_id":"PR_kwDOSlaZiM7eltws","number":7,"state":"closed","title":"deps(deps): bump the pip group across 1 directory with 4 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-24T02:09:08.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-23T08:48:02.000Z","updated_at":"2026-05-24T02:09:08.000Z","time_to_close":62466,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"pip","update_count":4,"packages":[{"name":"python-multipart","old_version":"0.0.12","new_version":"0.0.27","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"cryptography","old_version":"43.0.1","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"apache-airflow","old_version":"2.10.2","new_version":"3.2.1rc1","repository_url":"https://github.com/apache/airflow"},{"name":"pytest","old_version":"8.3.3","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 4 updates in the / directory: [python-multipart](https://github.com/Kludex/python-multipart), [cryptography](https://github.com/pyca/cryptography), [apache-airflow](https://github.com/apache/airflow) and [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `python-multipart` from 0.0.12 to 0.0.27\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass parse offsets via constructors by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003eKludex/python-multipart#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd multipart header limits by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003eKludex/python-multipart#267\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27 (2026-04-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd multipart header limits \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003e#267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePass parse offsets via constructors \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003e#268\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.22 (2026-01-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop directory path from filename in \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://github.com/Kludex/python-multipart/commit/9433f4bbc9652bdde82bbe380984e32f8cfc89c4\"\u003e9433f4b\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.20 (2024-12-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/142\"\u003e#142\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.19 (2024-11-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't warn when CRLF is found after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/193\"\u003e#193\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.18 (2024-11-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHard break if found data after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/189\"\u003e#189\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/Kludex/python-multipart/commit/6d1d6892a6b01b25da6f3e7b097e8e06c57fb250\"\u003e\u003ccode\u003e6d1d689\u003c/code\u003e\u003c/a\u003e Version 0.0.27 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/0b10220b1555af068a2bc8b198022b1ae238200f\"\u003e\u003ccode\u003e0b10220\u003c/code\u003e\u003c/a\u003e Run CI on main branch pull requests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3e64f5f8caba0e5d391b0c1ad0f1c2edf9e8f911\"\u003e\u003ccode\u003e3e64f5f\u003c/code\u003e\u003c/a\u003e Add multipart header limits (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/eb109cc4eb8174f2a7efc1ba894b1bf6425c0b14\"\u003e\u003ccode\u003eeb109cc\u003c/code\u003e\u003c/a\u003e Pass parse offsets via constructors (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/78e29abb9a339598975beee093a770ec3033f76d\"\u003e\u003ccode\u003e78e29ab\u003c/code\u003e\u003c/a\u003e Bump pytest from 9.0.2 to 9.0.3 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b2ddd0982bdf0fe852e4f3baa12122d2827af46c\"\u003e\u003ccode\u003eb2ddd09\u003c/code\u003e\u003c/a\u003e fuzz: Enhance fuzzing capabilities with new chunked and boundary tests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.12...0.0.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 43.0.1 to 46.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.7 - 2026-04-07\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could be\n  passed to APIs that accept Python buffers, which could lead to buffer\n  overflow. **CVE-2026-39892**\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.6.\n\u003cp\u003e.. _v46-0-6:\u003c/p\u003e\n\u003cp\u003e46.0.6 - 2026-03-25\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSECURITY ISSUE\u003c/strong\u003e: Fixed a bug where name constraints were not applied\nto peer names during verification when the leaf certificate contains a\nwildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\nincluding those used by the Web PKI. Credit to \u003cstrong\u003eOleh Konko (1seal)\u003c/strong\u003e for\nreporting the issue. \u003cstrong\u003eCVE-2026-34073\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-5:\u003c/p\u003e\n\u003cp\u003e46.0.5 - 2026-02-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* An attacker could create a malicious public key that reveals portions of your\n  private key when using certain uncommon elliptic curves (binary curves).\n  This version now includes additional security checks to prevent this attack.\n  This issue only affects binary elliptic curves, which are rarely used in\n  real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and\n  Atuin Automated Vulnerability Discovery Engine** for reporting the issue.\n  **CVE-2026-26007**\n* Support for ``SECT*`` binary elliptic curves is deprecated and will be\n  removed in the next release.\n\u003cp\u003e.. v46-0-4:\u003c/p\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDropped support for win_arm64 wheels\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-3:\u003c/p\u003e\n\u003cp\u003e46.0.3 - 2025-10-15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed compilation when using LibreSSL 4.2.0.\n\u003cp\u003e.. _v46-0-2:\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5\"\u003e\u003ccode\u003e622d672\u003c/code\u003e\u003c/a\u003e 46.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14602\"\u003e#14602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/91d728897bdad30cd5c79a2b23e207f1f050d587\"\u003e\u003ccode\u003e91d7288\u003c/code\u003e\u003c/a\u003e Cherry-pick \u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14542\"\u003e#14542\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14543\"\u003e#14543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/06e120e682cb200e3f7050c02f0bcdac90c4c6ad\"\u003e\u003ccode\u003e06e120e\u003c/code\u003e\u003c/a\u003e bump version for 46.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14289\"\u003e#14289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c\"\u003e\u003ccode\u003e0eebb9d\u003c/code\u003e\u003c/a\u003e EC check key on cofactor \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14287\"\u003e#14287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e\"\u003e\u003ccode\u003ebedf6e1\u003c/code\u003e\u003c/a\u003e fix openssl version on 46 branch (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/c0af4dd7b75921bbe9f1d41a03dbd4b64a9e3403\"\u003e\u003ccode\u003ec0af4dd\u003c/code\u003e\u003c/a\u003e release 46.0.3 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13681\"\u003e#13681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/99efe5ad150a56efadafacaffd0e3ee319373904\"\u003e\u003ccode\u003e99efe5a\u003c/code\u003e\u003c/a\u003e bump version for 46.0.2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13531\"\u003e#13531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e735cfc27502320101c130335c556394a125ba52\"\u003e\u003ccode\u003ee735cfc\u003c/code\u003e\u003c/a\u003e release 46.0.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13450\"\u003e#13450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/4e457ffba43a6d87efc63c33041e2081438dd8a4\"\u003e\u003ccode\u003e4e457ff\u003c/code\u003e\u003c/a\u003e Explicitly specify python in mac uv build invocation (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13447\"\u003e#13447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/43.0.1...46.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apache-airflow` from 2.10.2 to 3.2.1rc1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/b457a3001f055dabbf73b8562026113ac9d91488\"\u003e\u003ccode\u003eb457a30\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/200a7e13a628316ad8020cfc31f5dff888d0e748\"\u003e\u003ccode\u003e200a7e1\u003c/code\u003e\u003c/a\u003e Update version to 3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3abf7e0d9fcdbedd9562184dd96171f7a5e5d5b3\"\u003e\u003ccode\u003e3abf7e0\u003c/code\u003e\u003c/a\u003e update release notes of 3.2.0 specifying \u003ccode\u003esqlalchemy[asyncio]\u0026gt;=2.0.48\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/6513\"\u003e#6513\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/daae7bbfef9e2fc19f01facd4d2b1c65e9495ae6\"\u003e\u003ccode\u003edaae7bb\u003c/code\u003e\u003c/a\u003e Restore \u003ccode\u003edeactivate_deleted_dags\u003c/code\u003e signature broken by \u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64245\"\u003e#64245\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65312\"\u003e#65312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/519c4f1cf2dc8e90ad910407895d86e7e74689de\"\u003e\u003ccode\u003e519c4f1\u003c/code\u003e\u003c/a\u003e fix: use Dag form when materializing asset (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64211\"\u003e#64211\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65303\"\u003e#65303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7c4dbf9ead4e2fd0eddb853fd5858517ba1431eb\"\u003e\u003ccode\u003e7c4dbf9\u003c/code\u003e\u003c/a\u003e Change default sort to 'id' for list task instances (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64168\"\u003e#64168\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65297\"\u003e#65297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7ba62fcc3924564c03b55da60ce3d6ba8c9882e6\"\u003e\u003ccode\u003e7ba62fc\u003c/code\u003e\u003c/a\u003e Fix zip DAG import errors being cleared during bundle refresh (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65296\"\u003e#65296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8a3af78363955dc4de4a74a57ed5143c999c3b7c\"\u003e\u003ccode\u003e8a3af78\u003c/code\u003e\u003c/a\u003e Remove outdated TODO comment about permissions (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64169\"\u003e#64169\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65295\"\u003e#65295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f6dc7714270808a0762b1fc6b77c500d23954ca3\"\u003e\u003ccode\u003ef6dc771\u003c/code\u003e\u003c/a\u003e fix(connection-model): RFC3896 \u003ccode\u003econn_type\u003c/code\u003e warning (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63167\"\u003e#63167\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65294\"\u003e#65294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f55ed5c070d77e7370a88763b10a53b38e09f5ee\"\u003e\u003ccode\u003ef55ed5c\u003c/code\u003e\u003c/a\u003e Add overridable metadata engine creation hooks in \u003ccode\u003esettings.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/62184\"\u003e#62184\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65\"\u003e#65\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/2.10.2...3.2.1rc1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.3 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/zrlopez/ml-incident-response-playbook/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/zrlopez%2Fml-incident-response-playbook/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"}},{"old_version":"2.10.5","new_version":"3.2.1rc1","update_type":"major","path":null,"pr_created_at":"2026-05-09T15:36:02.000Z","version_change":"2.10.5 → 3.2.1rc1","issue":{"uuid":"4412962790","node_id":"PR_kwDOR4C6KM7Z3ezv","number":7,"state":"closed","title":"build(deps): Bump the pip group across 2 directories with 3 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-09T23:18:48.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-09T15:36:02.000Z","updated_at":"2026-05-09T23:18:50.000Z","time_to_close":27766,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"pip","update_count":3,"packages":[{"name":"apache-airflow","old_version":"2.10.5","new_version":"3.2.1rc1","repository_url":"https://github.com/apache/airflow"},{"name":"mlflow","old_version":"2.21.3","new_version":"3.11.0rc1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"python-multipart","old_version":"0.0.19","new_version":"0.0.27","repository_url":"https://github.com/Kludex/python-multipart"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 2 updates in the /airflow directory: [apache-airflow](https://github.com/apache/airflow) and [mlflow](https://github.com/mlflow/mlflow).\nBumps the pip group with 1 update in the /ml-engine directory: [python-multipart](https://github.com/Kludex/python-multipart).\n\nUpdates `apache-airflow` from 2.10.5 to 3.2.1rc1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/b457a3001f055dabbf73b8562026113ac9d91488\"\u003e\u003ccode\u003eb457a30\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/200a7e13a628316ad8020cfc31f5dff888d0e748\"\u003e\u003ccode\u003e200a7e1\u003c/code\u003e\u003c/a\u003e Update version to 3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3abf7e0d9fcdbedd9562184dd96171f7a5e5d5b3\"\u003e\u003ccode\u003e3abf7e0\u003c/code\u003e\u003c/a\u003e update release notes of 3.2.0 specifying \u003ccode\u003esqlalchemy[asyncio]\u0026gt;=2.0.48\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/6513\"\u003e#6513\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/daae7bbfef9e2fc19f01facd4d2b1c65e9495ae6\"\u003e\u003ccode\u003edaae7bb\u003c/code\u003e\u003c/a\u003e Restore \u003ccode\u003edeactivate_deleted_dags\u003c/code\u003e signature broken by \u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64245\"\u003e#64245\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65312\"\u003e#65312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/519c4f1cf2dc8e90ad910407895d86e7e74689de\"\u003e\u003ccode\u003e519c4f1\u003c/code\u003e\u003c/a\u003e fix: use Dag form when materializing asset (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64211\"\u003e#64211\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65303\"\u003e#65303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7c4dbf9ead4e2fd0eddb853fd5858517ba1431eb\"\u003e\u003ccode\u003e7c4dbf9\u003c/code\u003e\u003c/a\u003e Change default sort to 'id' for list task instances (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64168\"\u003e#64168\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65297\"\u003e#65297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7ba62fcc3924564c03b55da60ce3d6ba8c9882e6\"\u003e\u003ccode\u003e7ba62fc\u003c/code\u003e\u003c/a\u003e Fix zip DAG import errors being cleared during bundle refresh (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65296\"\u003e#65296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8a3af78363955dc4de4a74a57ed5143c999c3b7c\"\u003e\u003ccode\u003e8a3af78\u003c/code\u003e\u003c/a\u003e Remove outdated TODO comment about permissions (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64169\"\u003e#64169\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65295\"\u003e#65295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f6dc7714270808a0762b1fc6b77c500d23954ca3\"\u003e\u003ccode\u003ef6dc771\u003c/code\u003e\u003c/a\u003e fix(connection-model): RFC3896 \u003ccode\u003econn_type\u003c/code\u003e warning (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63167\"\u003e#63167\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65294\"\u003e#65294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f55ed5c070d77e7370a88763b10a53b38e09f5ee\"\u003e\u003ccode\u003ef55ed5c\u003c/code\u003e\u003c/a\u003e Add overridable metadata engine creation hooks in \u003ccode\u003esettings.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/62184\"\u003e#62184\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65\"\u003e#65\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/2.10.5...3.2.1rc1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mlflow` from 2.21.3 to 3.11.0rc1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mlflow/mlflow/releases\"\u003emlflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11.0rc1\u003c/h2\u003e\n\u003cp\u003eStripped third-party dependencies from evaluation and AI Gateway features, replacing external provider routing with built-in implementations.\u003c/p\u003e\n\u003ch2\u003ev3.11.0rc0\u003c/h2\u003e\n\u003cp\u003eWe're excited to announce MLflow 3.11.0rc0, which includes several notable updates:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMajor New Features\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🔍 \u003cstrong\u003eAutomatic Issue Identification\u003c/strong\u003e: Automatically identify quality issues in your agent with AI! Use the new \u0026quot;Detect Issues\u0026quot; button in the traces table to analyze selected traces and surface potential problems across categories like correctness, safety, and performance. Issues are linked directly to traces for easy investigation and debugging. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21431\"\u003e#21431\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21204\"\u003e#21204\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21165\"\u003e#21165\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21163\"\u003e#21163\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21161\"\u003e#21161\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e💰 \u003cstrong\u003eGateway Budget Alerts \u0026amp; Limits\u003c/strong\u003e: Control your AI Gateway spending with configurable budget policies! Set spending limits by time window (daily, weekly, or monthly), receive alerts before hitting limits, and prevent runaway costs with automatic request blocking. The new budget management UI lets you track spending, configure webhooks for notifications, and monitor violations across all your gateway endpoints. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21116\"\u003e#21116\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21534\"\u003e#21534\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21569\"\u003e#21569\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21473\"\u003e#21473\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21108\"\u003e#21108\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e📊 \u003cstrong\u003eTrace Graph View\u003c/strong\u003e: Visualize complex trace hierarchies with an interactive graph view! Navigate multi-level trace structures, understand parent-child relationships at a glance, and debug complex systems more effectively with a visual representation of your trace topology. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20607\"\u003e#20607\u003c/a\u003e, \u003ca href=\"https://github.com/joelrobin18\"\u003e\u003ccode\u003e@​joelrobin18\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e🌐 \u003cstrong\u003eNative OpenTelemetry GenAI Convention Support\u003c/strong\u003e: MLflow now natively supports the OpenTelemetry GenAI Semantic Conventions for trace export! When exporting traces via OTLP with \u003ccode\u003eMLFLOW_ENABLE_OTEL_GENAI_SEMCONV\u003c/code\u003e enabled, MLflow automatically translates them to follow the OTel GenAI semantic conventions, enabling seamless integration with OTel-compatible observability platforms while preserving GenAI-specific metadata. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21494\"\u003e#21494\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21495\"\u003e#21495\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e🔧 \u003cstrong\u003eOpencode Tracing Integration\u003c/strong\u003e: Debug smarter with Opencode CLI integration! Track and analyze code execution flows directly from your development workflow, making it easier to identify performance bottlenecks and trace issues back to specific code paths. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20133\"\u003e#20133\u003c/a\u003e, \u003ca href=\"https://github.com/joelrobin18\"\u003e\u003ccode\u003e@​joelrobin18\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e⚡ \u003cstrong\u003eUV Package Manager Support\u003c/strong\u003e: Automatic dependency inference now supports UV! MLflow automatically detects UV projects and captures exact, locked dependencies from your lockfile when logging models, ensuring reproducible environments. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20344\"\u003e#20344\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20935\"\u003e#20935\u003c/a\u003e, \u003ca href=\"https://github.com/debu-sinha\"\u003e\u003ccode\u003e@​debu-sinha\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e🔒 \u003cstrong\u003ePickle-Free Model Serialization\u003c/strong\u003e: Enhance security with pickle-free model formats! MLflow now supports safer model serialization using torch.export and skops formats, with improved controls when \u003ccode\u003eMLFLOW_ALLOW_PICKLE_DESERIALIZATION=False\u003c/code\u003e. Comprehensive documentation guides you through migrating existing models to pickle-free formats for production deployments. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21404\"\u003e#21404\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21188\"\u003e#21188\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20774\"\u003e#20774\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBreaking Changes\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ \u003cstrong\u003eTypeScript SDK Package Renaming\u003c/strong\u003e: The MLflow TypeScript SDK packages have been renamed to use npm organization scoping. If you're using the TypeScript SDK, update your \u003ccode\u003epackage.json\u003c/code\u003e dependencies and import statements: \u003ccode\u003emlflow-tracing\u003c/code\u003e → \u003ccode\u003e@mlflow/core\u003c/code\u003e, \u003ccode\u003emlflow-openai\u003c/code\u003e → \u003ccode\u003e@mlflow/openai\u003c/code\u003e, \u003ccode\u003emlflow-anthropic\u003c/code\u003e → \u003ccode\u003e@mlflow/anthropic\u003c/code\u003e, \u003ccode\u003emlflow-gemini\u003c/code\u003e → \u003ccode\u003e@mlflow/gemini\u003c/code\u003e. All packages are now at version \u003ccode\u003e0.2.0\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20792\"\u003e#20792\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eStay tuned for the full release, which will be packed with even more features and bugfixes.\u003c/p\u003e\n\u003cp\u003eTo try out this release candidate, please run:\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003epip install mlflow==3.11.0rc0\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003ev3.10.1\u003c/h2\u003e\n\u003cp\u003eMLflow 3.10.1 is a patch release that contains some minor feature enhancements, bug fixes, and documentation updates.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add try-it page on Gateway usage example modal (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21077\"\u003e#21077\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Filter gateway experiments from the experiment list page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21130\"\u003e#21130\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21191\"\u003e#21191\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Persist AI Gateway default passphrase security banner dismissal to localStorage (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21292\"\u003e#21292\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Demote unused parameters log message from WARNING to DEBUG in instructions judge (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21294\"\u003e#21294\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / UI] Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix judge builder instruction textarea (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21299\"\u003e#21299\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix group mode to aggregate \u0026quot;Additional runs\u0026quot; as \u0026quot;Unassigned\u0026quot; group in charts (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21155\"\u003e#21155\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix artifact download when workspaces are enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21074\"\u003e#21074\u003c/a\u003e, \u003ca href=\"https://github.com/timsolovev\"\u003e\u003ccode\u003e@​timsolovev\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix NOT NULL constraint on assessments.trace_id during trace export (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21348\"\u003e#21348\u003c/a\u003e, \u003ca href=\"https://github.com/dbczumar\"\u003e\u003ccode\u003e@​dbczumar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Fix 403 Forbidden for artifact list via query param when \u003ccode\u003edefault_permission=NO_PERMISSIONS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21220\"\u003e#21220\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [ML-63097] Fix broken LLM judge documentation links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21347\"\u003e#21347\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix Run Judge failed with litellm.InternalServerError: Invalid response object. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21262\"\u003e#21262\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Update Action menu: indentation to avoid confusion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21266\"\u003e#21266\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry] Fix MlflowClient.copy_model_version for the case that copy UC model across workspaces (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21212\"\u003e#21212\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mlflow/mlflow/blob/master/CHANGELOG.md\"\u003emlflow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eCHANGELOG\u003c/h1\u003e\n\u003ch2\u003e3.12.0 (2026-05-04)\u003c/h2\u003e\n\u003cp\u003eMLflow 3.12.0 includes several major features and improvements\u003c/p\u003e\n\u003ch3\u003eMajor New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e🖼️ Multimodal Tracing\u003c/strong\u003e: Users can now store multimodal content in tracing spans as artifact attachments instead of inline binary data. We've also patched the UI to support the new mlflow-attachment:// style URI, with rich rendering available for PDFs, audio, and images.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e🤖 Codex, Gemini, Qwen coding agent tracing support\u003c/strong\u003e: Similar to our Claude Code tracing integration, we've now added support for the Codex, Gemini, and Qwen coding agent platforms as well!\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e🛡️ Gateway guardrails\u003c/strong\u003e: You can now set guardrails on your gateway endpoints to prevent unsafe or non-compliant model inputs and outputs. Try it out in the MLflow UI!\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e⚡ Trace table pagination\u003c/strong\u003e: The traces tab is now paginated, rather than fetching all traces up to a limit of 1000. This improves initial load time, and makes the page feel more responsive overall.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Scoring] Deprecate \u003ccode\u003eenable_mlserver\u003c/code\u003e in pyfunc serving backend (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22994\"\u003e#22994\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Assorted Features \u0026amp; Improvements:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add coding agents section to AI Gateway quick start (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23006\"\u003e#23006\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] feat: record caller in gateway traces from request headers (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22926\"\u003e#22926\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Run guardrails on passthrough endpoints; skip \u003ccode\u003eresponse_format\u003c/code\u003e for non-chat payloads (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22856\"\u003e#22856\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Gateway: preserve client auth header for subscription-based CLI tools (\u003ccode\u003eclaude-cli\u003c/code\u003e, \u003ccode\u003eCodex-Desktop\u003c/code\u003e, \u003ccode\u003eGeminiCLI\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22915\"\u003e#22915\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Expose Codex and Qwen Code hooks as installable CLI binaries (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22853\"\u003e#22853\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking / UI] Add Portkey as a supported AI Gateway provider (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22830\"\u003e#22830\u003c/a\u003e, \u003ca href=\"https://github.com/sairavuri-sudo\"\u003e\u003ccode\u003e@​sairavuri-sudo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Cache successful basic-auth credential checks to eliminate per-request PBKDF2 (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22817\"\u003e#22817\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Add \u003ccode\u003elast_updated_at\u003c/code\u003e field to model catalog entries (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22838\"\u003e#22838\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Enable third-party scorer registration in OSS MLflow (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22634\"\u003e#22634\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Add platform-side telemetry fields to Gateway invocation and budget events (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22557\"\u003e#22557\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Auto-start SQL warehouse before V4/V5 MLflow tracing calls (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22798\"\u003e#22798\u003c/a\u003e, \u003ca href=\"https://github.com/artjen\"\u003e\u003ccode\u003e@​artjen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Migrate Claude Code tracing to TypeScript-based plugin for simpler installation and runtime handling. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22338\"\u003e#22338\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add TypeScript Qwen Code tracing via Stop hook (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22411\"\u003e#22411\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Support \u003ccode\u003emodel_kwargs\u003c/code\u003e in DeepEval scorers for LLM parameter control (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22494\"\u003e#22494\u003c/a\u003e, \u003ca href=\"https://github.com/debu-sinha\"\u003e\u003ccode\u003e@​debu-sinha\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Add Application Default Credentials auth mode for Vertex AI gateway (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22754\"\u003e#22754\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Reorganize Settings into section-based routing with sub-sidebar navigation (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22743\"\u003e#22743\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add TypeScript Codex CLI tracing via \u003ccode\u003enotify\u003c/code\u003e hook (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22410\"\u003e#22410\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Add Share button to trace detail view (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22608\"\u003e#22608\u003c/a\u003e, \u003ca href=\"https://github.com/alkispoly-db\"\u003e\u003ccode\u003e@​alkispoly-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Models] Add \u003ccode\u003emlflow.diffusers\u003c/code\u003e flavor for diffusion model LoRA adapters (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22253\"\u003e#22253\u003c/a\u003e, \u003ca href=\"https://github.com/Rasaboun\"\u003e\u003ccode\u003e@​Rasaboun\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add size limit for trace attachments (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22575\"\u003e#22575\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add \u003ccode\u003eGeminiCliTranslator\u003c/code\u003e for Gemini CLI OTLP span type mapping (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22409\"\u003e#22409\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add JSON OTLP encoding support for trace ingestion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22408\"\u003e#22408\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Extract \u003ccode\u003eservice.name\u003c/code\u003e from OTLP resource attributes for usage telemetry (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22407\"\u003e#22407\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add MLflow tracing spans to guardrail execution in gateway (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22581\"\u003e#22581\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Add rendering size guards for large media content (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22574\"\u003e#22574\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21037\"\u003e#21037\u003c/a\u003e Add presigned upload URL endpoint for S3 artifact uploads (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21039\"\u003e#21039\u003c/a\u003e, \u003ca href=\"https://github.com/henishborad\"\u003e\u003ccode\u003e@​henishborad\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Add Guardrails tab to endpoint editor (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22360\"\u003e#22360\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Add click-to-expand modal for trace attachment images (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22461\"\u003e#22461\u003c/a\u003e, \u003ca href=\"https://github.com/kriscon-db\"\u003e\u003ccode\u003e@​kriscon-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Enhance Gateway quick start cards with logos, multi-model options, and compact variant (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22513\"\u003e#22513\u003c/a\u003e, \u003ca href=\"https://github.com/xq-yin\"\u003e\u003ccode\u003e@​xq-yin\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add \u003ccode\u003e@​mlflow/vercel\u003c/code\u003e for better Vercel AI SDK tracing in Databricks UC (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22105\"\u003e#22105\u003c/a\u003e, \u003ca href=\"https://github.com/dbrx-euirim\"\u003e\u003ccode\u003e@​dbrx-euirim\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [UI] Refactor API keys page: bulk delete, inline drawer editing, consistent list pattern (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22485\"\u003e#22485\u003c/a\u003e, \u003ca href=\"https://github.com/xq-yin\"\u003e\u003ccode\u003e@​xq-yin\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/2627607e66982c6c422c6049acdb65aede496d90\"\u003e\u003ccode\u003e2627607\u003c/code\u003e\u003c/a\u003e update uv.lock (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22235\"\u003e#22235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/099fe52206cc376319cf05d345b2961fad6751f9\"\u003e\u003ccode\u003e099fe52\u003c/code\u003e\u003c/a\u003e bump version to rc1 (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22232\"\u003e#22232\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/0e2ae1bf48fb59fee1de3057e89b1732345b1971\"\u003e\u003ccode\u003e0e2ae1b\u003c/code\u003e\u003c/a\u003e Fix telemetry initialization and flush in job subprocesses (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22222\"\u003e#22222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/6da4f10c19cd551101767ae0e46e40875de6658c\"\u003e\u003ccode\u003e6da4f10\u003c/code\u003e\u003c/a\u003e Move native providers to non-LiteLLM in gateway UI (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22203\"\u003e#22203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/b934d2315e368d04a25439905b9a36f3d581f107\"\u003e\u003ccode\u003eb934d23\u003c/code\u003e\u003c/a\u003e Fix response parsing for older models (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22138\"\u003e#22138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/d2d92ee3c6f8e1f9b9e0956e2911ef7476cddbef\"\u003e\u003ccode\u003ed2d92ee\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eMLFLOW_ENABLE_INCREMENTAL_SPAN_EXPORT\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22182\"\u003e#22182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/aaad8d813bf68aeb9ae0f5a2095a58b40ae08ff5\"\u003e\u003ccode\u003eaaad8d8\u003c/code\u003e\u003c/a\u003e Remove notification and redirect to eval run (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22175\"\u003e#22175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/3f220eb61f07619ab9f063bb9bb83ffda5dde85e\"\u003e\u003ccode\u003e3f220eb\u003c/code\u003e\u003c/a\u003e Replace \u003ccode\u003etorch\u003c/code\u003e dependency group with \u003ccode\u003erequirements/torch.txt\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22192\"\u003e#22192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/1c65d9a909d9f68869826bcf55bd15dc050bb9da\"\u003e\u003ccode\u003e1c65d9a\u003c/code\u003e\u003c/a\u003e Edit LiteLLM mentions in docs (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22140\"\u003e#22140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/9a328e542a7ae576055bec6650cb0191b8f53d8e\"\u003e\u003ccode\u003e9a328e5\u003c/code\u003e\u003c/a\u003e Remove dynamic logs from workspace selector (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22180\"\u003e#22180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mlflow/mlflow/compare/v2.21.3...v3.11.0rc1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.19 to 0.0.27\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass parse offsets via constructors by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003eKludex/python-multipart#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd multipart header limits by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003eKludex/python-multipart#267\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27 (2026-04-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd multipart header limits \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003e#267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePass parse offsets via constructors \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003e#268\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.22 (2026-01-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop directory path from filename in \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://github.com/Kludex/python-multipart/commit/9433f4bbc9652bdde82bbe380984e32f8cfc89c4\"\u003e9433f4b\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.20 (2024-12-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/142\"\u003e#142\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/Kludex/python-multipart/commit/6d1d6892a6b01b25da6f3e7b097e8e06c57fb250\"\u003e\u003ccode\u003e6d1d689\u003c/code\u003e\u003c/a\u003e Version 0.0.27 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/0b10220b1555af068a2bc8b198022b1ae238200f\"\u003e\u003ccode\u003e0b10220\u003c/code\u003e\u003c/a\u003e Run CI on main branch pull requests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3e64f5f8caba0e5d391b0c1ad0f1c2edf9e8f911\"\u003e\u003ccode\u003e3e64f5f\u003c/code\u003e\u003c/a\u003e Add multipart header limits (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/eb109cc4eb8174f2a7efc1ba894b1bf6425c0b14\"\u003e\u003ccode\u003eeb109cc\u003c/code\u003e\u003c/a\u003e Pass parse offsets via constructors (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/78e29abb9a339598975beee093a770ec3033f76d\"\u003e\u003ccode\u003e78e29ab\u003c/code\u003e\u003c/a\u003e Bump pytest from 9.0.2 to 9.0.3 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b2ddd0982bdf0fe852e4f3baa12122d2827af46c\"\u003e\u003ccode\u003eb2ddd09\u003c/code\u003e\u003c/a\u003e fuzz: Enhance fuzzing capabilities with new chunked and boundary tests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.19...0.0.27\"\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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/FXGUNIT/TradersApp/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/FXGUNIT/TradersApp/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FXGUNIT%2FTradersApp/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"}},{"old_version":"2.3.4","new_version":"3.2.1rc1","update_type":"major","path":null,"pr_created_at":"2026-05-08T07:17:08.000Z","version_change":"2.3.4 → 3.2.1rc1","issue":{"uuid":"4404584307","node_id":"PR_kwDOPqaMus7Zb_C7","number":16,"state":"closed","title":"Bump the pip group across 4 directories with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-09T03:03:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-08T07:17:08.000Z","updated_at":"2026-05-09T03:03:56.000Z","time_to_close":71206,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":7,"packages":[{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"cryptography","old_version":"42.0.8","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"pillow","old_version":"10.3.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pyopenssl","old_version":"24.1.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"requests-hardened","old_version":"1.0.0b3","new_version":"1.2.1","repository_url":"https://github.com/saleor/requests-hardened"},{"name":"apache-airflow","old_version":"2.3.4","new_version":"3.2.1rc1","repository_url":"https://github.com/apache/airflow"},{"name":"uv","old_version":"0.5.10","new_version":"0.11.6","repository_url":"https://github.com/astral-sh/uv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 4 updates in the /ecosystem/home-assistant-core directory: [requests](https://github.com/psf/requests), [cryptography](https://github.com/pyca/cryptography), [pillow](https://github.com/python-pillow/Pillow) and [pyopenssl](https://github.com/pyca/pyopenssl).\nBumps the pip group with 1 update in the /ecosystem/saleor directory: [requests-hardened](https://github.com/saleor/requests-hardened).\nBumps the pip group with 1 update in the /scripts/requirements directory: [apache-airflow](https://github.com/apache/airflow).\nBumps the pip group with 1 update in the /scripts/scenarios directory: [uv](https://github.com/astral-sh/uv).\n\nUpdates `requests` from 2.32.3 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 42.0.8 to 46.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.7 - 2026-04-07\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could be\n  passed to APIs that accept Python buffers, which could lead to buffer\n  overflow. **CVE-2026-39892**\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.6.\n\u003cp\u003e.. _v46-0-6:\u003c/p\u003e\n\u003cp\u003e46.0.6 - 2026-03-25\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSECURITY ISSUE\u003c/strong\u003e: Fixed a bug where name constraints were not applied\nto peer names during verification when the leaf certificate contains a\nwildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\nincluding those used by the Web PKI. Credit to \u003cstrong\u003eOleh Konko (1seal)\u003c/strong\u003e for\nreporting the issue. \u003cstrong\u003eCVE-2026-34073\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-5:\u003c/p\u003e\n\u003cp\u003e46.0.5 - 2026-02-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* An attacker could create a malicious public key that reveals portions of your\n  private key when using certain uncommon elliptic curves (binary curves).\n  This version now includes additional security checks to prevent this attack.\n  This issue only affects binary elliptic curves, which are rarely used in\n  real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and\n  Atuin Automated Vulnerability Discovery Engine** for reporting the issue.\n  **CVE-2026-26007**\n* Support for ``SECT*`` binary elliptic curves is deprecated and will be\n  removed in the next release.\n\u003cp\u003e.. v46-0-4:\u003c/p\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDropped support for win_arm64 wheels\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-3:\u003c/p\u003e\n\u003cp\u003e46.0.3 - 2025-10-15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed compilation when using LibreSSL 4.2.0.\n\u003cp\u003e.. _v46-0-2:\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5\"\u003e\u003ccode\u003e622d672\u003c/code\u003e\u003c/a\u003e 46.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14602\"\u003e#14602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/91d728897bdad30cd5c79a2b23e207f1f050d587\"\u003e\u003ccode\u003e91d7288\u003c/code\u003e\u003c/a\u003e Cherry-pick \u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14542\"\u003e#14542\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14543\"\u003e#14543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/06e120e682cb200e3f7050c02f0bcdac90c4c6ad\"\u003e\u003ccode\u003e06e120e\u003c/code\u003e\u003c/a\u003e bump version for 46.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14289\"\u003e#14289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c\"\u003e\u003ccode\u003e0eebb9d\u003c/code\u003e\u003c/a\u003e EC check key on cofactor \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14287\"\u003e#14287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e\"\u003e\u003ccode\u003ebedf6e1\u003c/code\u003e\u003c/a\u003e fix openssl version on 46 branch (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/c0af4dd7b75921bbe9f1d41a03dbd4b64a9e3403\"\u003e\u003ccode\u003ec0af4dd\u003c/code\u003e\u003c/a\u003e release 46.0.3 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13681\"\u003e#13681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/99efe5ad150a56efadafacaffd0e3ee319373904\"\u003e\u003ccode\u003e99efe5a\u003c/code\u003e\u003c/a\u003e bump version for 46.0.2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13531\"\u003e#13531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e735cfc27502320101c130335c556394a125ba52\"\u003e\u003ccode\u003ee735cfc\u003c/code\u003e\u003c/a\u003e release 46.0.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13450\"\u003e#13450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/4e457ffba43a6d87efc63c33041e2081438dd8a4\"\u003e\u003ccode\u003e4e457ff\u003c/code\u003e\u003c/a\u003e Explicitly specify python in mac uv build invocation (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13447\"\u003e#13447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/42.0.8...46.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.3.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.3.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyopenssl` from 24.1.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst\"\u003epyopenssl's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0 (2026-03-15)\u003c/h2\u003e\n\u003cp\u003eBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eThe minimum \u003ccode\u003ecryptography\u003c/code\u003e version is now 46.0.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDeprecations:\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eChanges:\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using aws-lc instead of OpenSSL.\u003c/li\u003e\n\u003cli\u003eProperly raise an error if a DTLS cookie callback returned a cookie longer than \u003ccode\u003eDTLS1_COOKIE_LENGTH\u003c/code\u003e bytes. Previously this would result in a buffer-overflow. Credit to \u003cstrong\u003edark_haxor\u003c/strong\u003e for reporting the issue. \u003cstrong\u003eCVE-2026-27459\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eOpenSSL.SSL.Connection.get_group_name\u003c/code\u003e to determine which group name was negotiated.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.set_tlsext_servername_callback\u003c/code\u003e now handles exceptions raised in the callback by calling \u003ccode\u003esys.excepthook\u003c/code\u003e and returning a fatal TLS alert. Previously, exceptions were silently swallowed and the handshake would proceed as if the callback had succeeded. Credit to \u003cstrong\u003eLeury Castillo\u003c/strong\u003e for reporting this issue. \u003cstrong\u003eCVE-2026-27448\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.3.0 (2025-09-16)\u003c/h2\u003e\n\u003cp\u003eBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eDeprecations:\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eChanges:\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMaximum supported \u003ccode\u003ecryptography\u003c/code\u003e version is now 46.x.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.2.0 (2025-09-14)\u003c/h2\u003e\n\u003cp\u003eBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe minimum \u003ccode\u003ecryptography\u003c/code\u003e version is now 45.0.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDeprecations:\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eChanges:\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epyOpenSSL now sets \u003ccode\u003eSSL_MODE_ACCEPT_MOVING_WRITE_BUFFER\u003c/code\u003e on connections by default, matching CPython's behavior.\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/pyca/pyopenssl/commit/358cbf29c4e364c59930e53a270116249581eaa3\"\u003e\u003ccode\u003e358cbf2\u003c/code\u003e\u003c/a\u003e Prepare for 26.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1487\"\u003e#1487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a8d28e7069ca213049ccfbcc227ed9ef6080a15b\"\u003e\u003ccode\u003ea8d28e7\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1486\"\u003e#1486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/6fefff05561c0a5e8f668b4e029a6ba3adb7d89e\"\u003e\u003ccode\u003e6fefff0\u003c/code\u003e\u003c/a\u003e Add aws-lc compatibility to tests and CI (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1476\"\u003e#1476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a739f9661d09ec6cda448ad71ca3e6df0dce9d75\"\u003e\u003ccode\u003ea739f96\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1485\"\u003e#1485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/8b4c66b1b5649ce046665b151772d40c1cddd66a\"\u003e\u003ccode\u003e8b4c66b\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact in /.github/actions/upload-coverage (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1484\"\u003e#1484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/02a5c78435cd445a7d5ef20b354dba2b6abdac64\"\u003e\u003ccode\u003e02a5c78\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d9733878d67ee2ad94327768bb6dc416f7827443\"\u003e\u003ccode\u003ed973387\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1482\"\u003e#1482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/57f09bb4bb051d3bc2a1abd36e9525313d5cd408\"\u003e\u003ccode\u003e57f09bb\u003c/code\u003e\u003c/a\u003e Fix buffer overflow in DTLS cookie generation callback (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1479\"\u003e#1479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d41a814759a9fb49584ca8ab3f7295de49a85aa0\"\u003e\u003ccode\u003ed41a814\u003c/code\u003e\u003c/a\u003e Handle exceptions in set_tlsext_servername_callback callbacks (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1478\"\u003e#1478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/7b29beba7759f0b810b5d5375a50469c4f8947b3\"\u003e\u003ccode\u003e7b29beb\u003c/code\u003e\u003c/a\u003e Fix not using a cryptography wheel on uv (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/pyopenssl/compare/24.1.0...26.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests-hardened` from 1.0.0b3 to 1.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/saleor/requests-hardened/releases\"\u003erequests-hardened's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for pypy 3.10 by \u003ca href=\"https://github.com/NyanKiyoshi\"\u003e\u003ccode\u003e@​NyanKiyoshi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/55\"\u003esaleor/requests-hardened#55\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://github.com/saleor/requests-hardened/security/advisories/GHSA-vh75-fwv3-pqrh\"\u003eCVE-2026-42175\u003c/a\u003e - SSRF bypass via unfiltered RFC 6598 shared address space (100.64.0.0/10) by \u003ca href=\"https://github.com/NyanKiyoshi\"\u003e\u003ccode\u003e@​NyanKiyoshi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/saleor/requests-hardened/commit/b7403f88d3b3689e57435b75b51691a160aaeef5\"\u003ehttps://github.com/saleor/requests-hardened/commit/b7403f88d3b3689e57435b75b51691a160aaeef5\u003c/a\u003e and \u003ca href=\"https://github.com/saleor/requests-hardened/commit/a266b3958bb142bca515b3c230fdea19fbda327c\"\u003ehttps://github.com/saleor/requests-hardened/commit/a266b3958bb142bca515b3c230fdea19fbda327c\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/hits313\"\u003e\u003ccode\u003e@​hits313\u003c/code\u003e\u003c/a\u003e for the vulnerability finding and their responsible disclosure!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/saleor/requests-hardened/compare/v1.2.0...v1.2.1\"\u003ehttps://github.com/saleor/requests-hardened/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14 and dropped Python 3.9 support by \u003ca href=\"https://github.com/NyanKiyoshi\"\u003e\u003ccode\u003e@​NyanKiyoshi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/50\"\u003esaleor/requests-hardened#50\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/reneleonhardt\"\u003e\u003ccode\u003e@​reneleonhardt\u003c/code\u003e\u003c/a\u003e for initially working on the matter!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/saleor/requests-hardened/compare/v1.1.1...v1.2.0\"\u003ehttps://github.com/saleor/requests-hardened/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: publish wheels on PyPI by \u003ca href=\"https://github.com/NyanKiyoshi\"\u003e\u003ccode\u003e@​NyanKiyoshi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/49\"\u003esaleor/requests-hardened#49\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/saleor/requests-hardened/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/saleor/requests-hardened/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated all dependencies (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved support for PyPy 3.9 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for PyPy 3.11 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/saleor/requests-hardened/compare/v1.0.0...v1.1.0\"\u003ehttps://github.com/saleor/requests-hardened/compare/v1.0.0...v1.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003eChanges since v1.0.0b5\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for proxies in IP filter (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/35\"\u003esaleor/requests-hardened#35\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for HTTP redirect in IP filter (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/37\"\u003esaleor/requests-hardened#37\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8 and added support for Python 3.13 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/33\"\u003esaleor/requests-hardened#33\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded dependabot configuration (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/38\"\u003esaleor/requests-hardened#38\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTests: added missing docstrings to IP filtering error handling tests (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/pull/34\"\u003esaleor/requests-hardened#34\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/saleor/requests-hardened/commit/985b19ee3fa0ea0fe9b5dd63ce7bc58b84dcba0b\"\u003e\u003ccode\u003e985b19e\u003c/code\u003e\u003c/a\u003e release: v1.2.1 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/60\"\u003e#60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/a266b3958bb142bca515b3c230fdea19fbda327c\"\u003e\u003ccode\u003ea266b39\u003c/code\u003e\u003c/a\u003e fix: test failures (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/61\"\u003e#61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/b7403f88d3b3689e57435b75b51691a160aaeef5\"\u003e\u003ccode\u003eb7403f8\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/4f784459e99e067b428a647041d9e97d79f8d720\"\u003e\u003ccode\u003e4f78445\u003c/code\u003e\u003c/a\u003e build: pin all actions (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/57\"\u003e#57\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/b1567a7b9d8dfbf0ed8cc551ec25ee4fba27b25c\"\u003e\u003ccode\u003eb1567a7\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump cryptography from 46.0.1 to 46.0.5 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/54\"\u003e#54\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/914f3aebef7ea07f7a02541e872ae738f3994671\"\u003e\u003ccode\u003e914f3ae\u003c/code\u003e\u003c/a\u003e chore: drop pypy 3.10 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/55\"\u003e#55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/f155584fc4ee9b11362a62d03bb9aaa44fffda6f\"\u003e\u003ccode\u003ef155584\u003c/code\u003e\u003c/a\u003e build(deps): bump urllib3 in the pip group across 1 directory (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/53\"\u003e#53\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/b4c33f1635d1b61969d6c335443a1b5e36876f57\"\u003e\u003ccode\u003eb4c33f1\u003c/code\u003e\u003c/a\u003e build(deps): bump urllib3 in the pip group across 1 directory (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/52\"\u003e#52\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/416ebea59c7e92378f91e8c144988b3c879c16d7\"\u003e\u003ccode\u003e416ebea\u003c/code\u003e\u003c/a\u003e release: v1.2.0 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/51\"\u003e#51\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/saleor/requests-hardened/commit/7c9622201b09bec3336bc72a0161c074100de4ef\"\u003e\u003ccode\u003e7c96222\u003c/code\u003e\u003c/a\u003e feat: add support for Python 3.14 and drop Python 3.9 (\u003ca href=\"https://redirect.github.com/saleor/requests-hardened/issues/50\"\u003e#50\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/saleor/requests-hardened/compare/v1.0.0b3...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apache-airflow` from 2.3.4 to 3.2.1rc1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/b457a3001f055dabbf73b8562026113ac9d91488\"\u003e\u003ccode\u003eb457a30\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/200a7e13a628316ad8020cfc31f5dff888d0e748\"\u003e\u003ccode\u003e200a7e1\u003c/code\u003e\u003c/a\u003e Update version to 3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3abf7e0d9fcdbedd9562184dd96171f7a5e5d5b3\"\u003e\u003ccode\u003e3abf7e0\u003c/code\u003e\u003c/a\u003e update release notes of 3.2.0 specifying \u003ccode\u003esqlalchemy[asyncio]\u0026gt;=2.0.48\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/6513\"\u003e#6513\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/daae7bbfef9e2fc19f01facd4d2b1c65e9495ae6\"\u003e\u003ccode\u003edaae7bb\u003c/code\u003e\u003c/a\u003e Restore \u003ccode\u003edeactivate_deleted_dags\u003c/code\u003e signature broken by \u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64245\"\u003e#64245\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65312\"\u003e#65312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/519c4f1cf2dc8e90ad910407895d86e7e74689de\"\u003e\u003ccode\u003e519c4f1\u003c/code\u003e\u003c/a\u003e fix: use Dag form when materializing asset (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64211\"\u003e#64211\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65303\"\u003e#65303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7c4dbf9ead4e2fd0eddb853fd5858517ba1431eb\"\u003e\u003ccode\u003e7c4dbf9\u003c/code\u003e\u003c/a\u003e Change default sort to 'id' for list task instances (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64168\"\u003e#64168\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65297\"\u003e#65297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7ba62fcc3924564c03b55da60ce3d6ba8c9882e6\"\u003e\u003ccode\u003e7ba62fc\u003c/code\u003e\u003c/a\u003e Fix zip DAG import errors being cleared during bundle refresh (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65296\"\u003e#65296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8a3af78363955dc4de4a74a57ed5143c999c3b7c\"\u003e\u003ccode\u003e8a3af78\u003c/code\u003e\u003c/a\u003e Remove outdated TODO comment about permissions (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64169\"\u003e#64169\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65295\"\u003e#65295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f6dc7714270808a0762b1fc6b77c500d23954ca3\"\u003e\u003ccode\u003ef6dc771\u003c/code\u003e\u003c/a\u003e fix(connection-model): RFC3896 \u003ccode\u003econn_type\u003c/code\u003e warning (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63167\"\u003e#63167\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65294\"\u003e#65294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f55ed5c070d77e7370a88763b10a53b38e09f5ee\"\u003e\u003ccode\u003ef55ed5c\u003c/code\u003e\u003c/a\u003e Add overridable metadata engine creation hooks in \u003ccode\u003esettings.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/62184\"\u003e#62184\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65\"\u003e#65\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/2.3.4...3.2.1rc1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uv` from 0.5.10 to 0.11.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/uv/releases\"\u003euv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.6\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003cp\u003eThis release resolves a low severity security advisory in which wheels with malformed RECORD entries could delete arbitrary files on uninstall. See \u003ca href=\"https://github.com/astral-sh/uv/security/advisories/GHSA-pjjw-68hj-v9mw\"\u003eGHSA-pjjw-68hj-v9mw\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDo not remove files outside the venv on uninstall (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18942\"\u003e#18942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate and heal wheel \u003ccode\u003eRECORD\u003c/code\u003e during installation (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18943\"\u003e#18943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid \u003ccode\u003euv cache clean\u003c/code\u003e errors due to Win32 path normalization (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18856\"\u003e#18856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall uv 0.11.6\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/uv/releases/download/0.11.6/uv-installer.sh | sh\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-installer.ps1 | iex\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload uv 0.11.6\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-apple-darwin.tar.gz\"\u003euv-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-apple-darwin.tar.gz\"\u003euv-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-pc-windows-msvc.zip\"\u003euv-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-i686-pc-windows-msvc.zip\"\u003euv-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-pc-windows-msvc.zip\"\u003euv-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-unknown-linux-gnu.tar.gz\"\u003euv-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-i686-unknown-linux-gnu.tar.gz\"\u003euv-i686-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-i686-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-powerpc64le-unknown-linux-gnu.tar.gz\"\u003euv-powerpc64le-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ePPC64LE Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-powerpc64le-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-riscv64gc-unknown-linux-gnu.tar.gz\"\u003euv-riscv64gc-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eRISCV Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-riscv64gc-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-s390x-unknown-linux-gnu.tar.gz\"\u003euv-s390x-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eS390x Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-s390x-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-unknown-linux-gnu.tar.gz\"\u003euv-x86_64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-armv7-unknown-linux-gnueabihf.tar.gz\"\u003euv-armv7-unknown-linux-gnueabihf.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARMv7 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-armv7-unknown-linux-gnueabihf.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-unknown-linux-musl.tar.gz\"\u003euv-aarch64-unknown-linux-musl.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 MUSL Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-aarch64-unknown-linux-musl.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-i686-unknown-linux-musl.tar.gz\"\u003euv-i686-unknown-linux-musl.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 MUSL Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-i686-unknown-linux-musl.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-riscv64gc-unknown-linux-musl.tar.gz\"\u003euv-riscv64gc-unknown-linux-musl.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eRISCV MUSL Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-riscv64gc-unknown-linux-musl.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-unknown-linux-musl.tar.gz\"\u003euv-x86_64-unknown-linux-musl.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 MUSL Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-x86_64-unknown-linux-musl.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-arm-unknown-linux-musleabihf.tar.gz\"\u003euv-arm-unknown-linux-musleabihf.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARMv6 MUSL Linux (Hardfloat)\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-arm-unknown-linux-musleabihf.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-armv7-unknown-linux-musleabihf.tar.gz\"\u003euv-armv7-unknown-linux-musleabihf.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARMv7 MUSL Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.6/uv-armv7-unknown-linux-musleabihf.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/uv/blob/main/CHANGELOG.md\"\u003euv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003cp\u003eThis release resolves a low severity security advisory in which wheels with malformed RECORD entries could delete arbitrary files on uninstall. See \u003ca href=\"https://github.com/astral-sh/uv/security/advisories/GHSA-pjjw-68hj-v9mw\"\u003eGHSA-pjjw-68hj-v9mw\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDo not remove files outside the venv on uninstall (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18942\"\u003e#18942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate and heal wheel \u003ccode\u003eRECORD\u003c/code\u003e during installation (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18943\"\u003e#18943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid \u003ccode\u003euv cache clean\u003c/code\u003e errors due to Win32 path normalization (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18856\"\u003e#18856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.11.5\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-08.\u003c/p\u003e\n\u003ch3\u003ePython\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd CPython 3.13.13, 3.14.4, and 3.15.0a8 (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18908\"\u003e#18908\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ebuild_system.requires\u003c/code\u003e error message (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18911\"\u003e#18911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove trailing path separators in path normalization (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18915\"\u003e#18915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error messages for unsupported or invalid TLS certificates (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18924\"\u003e#18924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude-newer\u003c/code\u003e to \u003ccode\u003e[[tool.uv.index]]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18839\"\u003e#18839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003euv audit\u003c/code\u003e: add context/warnings for ignored vulnerabilities (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18905\"\u003e#18905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNormalize persisted fork markers before lock equality checks (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18612\"\u003e#18612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClear junction properly when uninstalling Python versions on Windows (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18815\"\u003e#18815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport error cleanly instead of panicking on TLS certificate error (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18904\"\u003e#18904\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove the legacy \u003ccode\u003ePIP_COMPATIBILITY.md\u003c/code\u003e redirect file (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18928\"\u003e#18928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003euv init example-bare --bare\u003c/code\u003e examples (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18822\"\u003e#18822\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18925\"\u003e#18925\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.11.4\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-07.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003e--upgrade-group\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18266\"\u003e#18266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMerge repeated archive URL hashes by version ID (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18841\"\u003e#18841\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/astral-sh/uv/commit/65950801cc3c609b65be34938bb407ab6e30a9fe\"\u003e\u003ccode\u003e6595080\u003c/code\u003e\u003c/a\u003e Bump version to 0.11.6 (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18948\"\u003e#18948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/7983c7a5bef236fd8a04580fcedae7bd5bde4cdb\"\u003e\u003ccode\u003e7983c7a\u003c/code\u003e\u003c/a\u003e Validate and heal RECORD during installation (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18943\"\u003e#18943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/b38439bfc731d5281e933656ce2e5b910da037b0\"\u003e\u003ccode\u003eb38439b\u003c/code\u003e\u003c/a\u003e Avoid \u003ccode\u003euv cache clean\u003c/code\u003e errors due to Win32 path normalization (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18856\"\u003e#18856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/a0e461ac44851f9a0f6e8974733e77d46f7a9ea9\"\u003e\u003ccode\u003ea0e461a\u003c/code\u003e\u003c/a\u003e Do not remove files outside the venv on uninstall (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18942\"\u003e#18942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/95eaa68c8df627eb915bc355831fd7d169d91fe3\"\u003e\u003ccode\u003e95eaa68\u003c/code\u003e\u003c/a\u003e Bump version to 0.11.5 (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18930\"\u003e#18930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/f6d67d57c1a9f17f7ab233654b55e061eb4bfd10\"\u003e\u003ccode\u003ef6d67d5\u003c/code\u003e\u003c/a\u003e Improve certificate loading error messages (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18924\"\u003e#18924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/39b83c30e0cdaed833e88564878376f9361987d2\"\u003e\u003ccode\u003e39b83c3\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eexclude-newer\u003c/code\u003e to \u003ccode\u003e[[tool.uv.index]]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18839\"\u003e#18839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/7924ba5b1419345dc5b9a9a16e6bcba2b59a41a6\"\u003e\u003ccode\u003e7924ba5\u003c/code\u003e\u003c/a\u003e uv audit: add context/warnings for ignored vulnerabilities (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18905\"\u003e#18905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/a352ce01eab5f19bbd5929f2a5f346187552ee7c\"\u003e\u003ccode\u003ea352ce0\u003c/code\u003e\u003c/a\u003e Remove the legacy PIP_COMPATIBILITY.md redirect file (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18928\"\u003e#18928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/33b633891181f768568bfc3196039d368417fe98\"\u003e\u003ccode\u003e33b6338\u003c/code\u003e\u003c/a\u003e Normalize persisted fork markers before lock equality checks (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18612\"\u003e#18612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/uv/compare/0.5.10...0.11.6\"\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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/XavierMP14/uv/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/XavierMP14/uv/pull/16","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/XavierMP14%2Fuv/issues/16","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/16/packages"}},{"old_version":"2.10.1","new_version":"3.2.1rc1","update_type":"major","path":"/images/airflow/2.10.1","pr_created_at":"2026-05-06T11:56:02.000Z","version_change":"2.10.1 → 3.2.1rc1","issue":{"uuid":"4391116219","node_id":"PR_kwDOK56Ncs7YwJbg","number":484,"state":"closed","title":"Bump apache-airflow from 2.10.1 to 3.2.1rc1 in /images/airflow/2.10.1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-12T17:05:29.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-06T11:56:02.000Z","updated_at":"2026-05-12T17:05:39.000Z","time_to_close":536967,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"2.10.1","new_version":"3.2.1rc1","repository_url":"https://github.com/apache/airflow"}],"path":"/images/airflow/2.10.1","ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 2.10.1 to 3.2.1rc1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/b457a3001f055dabbf73b8562026113ac9d91488\"\u003e\u003ccode\u003eb457a30\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/200a7e13a628316ad8020cfc31f5dff888d0e748\"\u003e\u003ccode\u003e200a7e1\u003c/code\u003e\u003c/a\u003e Update version to 3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3abf7e0d9fcdbedd9562184dd96171f7a5e5d5b3\"\u003e\u003ccode\u003e3abf7e0\u003c/code\u003e\u003c/a\u003e update release notes of 3.2.0 specifying \u003ccode\u003esqlalchemy[asyncio]\u0026gt;=2.0.48\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/6513\"\u003e#6513\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/daae7bbfef9e2fc19f01facd4d2b1c65e9495ae6\"\u003e\u003ccode\u003edaae7bb\u003c/code\u003e\u003c/a\u003e Restore \u003ccode\u003edeactivate_deleted_dags\u003c/code\u003e signature broken by \u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64245\"\u003e#64245\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65312\"\u003e#65312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/519c4f1cf2dc8e90ad910407895d86e7e74689de\"\u003e\u003ccode\u003e519c4f1\u003c/code\u003e\u003c/a\u003e fix: use Dag form when materializing asset (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64211\"\u003e#64211\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65303\"\u003e#65303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7c4dbf9ead4e2fd0eddb853fd5858517ba1431eb\"\u003e\u003ccode\u003e7c4dbf9\u003c/code\u003e\u003c/a\u003e Change default sort to 'id' for list task instances (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64168\"\u003e#64168\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65297\"\u003e#65297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7ba62fcc3924564c03b55da60ce3d6ba8c9882e6\"\u003e\u003ccode\u003e7ba62fc\u003c/code\u003e\u003c/a\u003e Fix zip DAG import errors being cleared during bundle refresh (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65296\"\u003e#65296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8a3af78363955dc4de4a74a57ed5143c999c3b7c\"\u003e\u003ccode\u003e8a3af78\u003c/code\u003e\u003c/a\u003e Remove outdated TODO comment about permissions (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64169\"\u003e#64169\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65295\"\u003e#65295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f6dc7714270808a0762b1fc6b77c500d23954ca3\"\u003e\u003ccode\u003ef6dc771\u003c/code\u003e\u003c/a\u003e fix(connection-model): RFC3896 \u003ccode\u003econn_type\u003c/code\u003e warning (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63167\"\u003e#63167\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65294\"\u003e#65294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f55ed5c070d77e7370a88763b10a53b38e09f5ee\"\u003e\u003ccode\u003ef55ed5c\u003c/code\u003e\u003c/a\u003e Add overridable metadata engine creation hooks in \u003ccode\u003esettings.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/62184\"\u003e#62184\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65\"\u003e#65\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/2.10.1...3.2.1rc1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=2.10.1\u0026new-version=3.2.1rc1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/aws/amazon-mwaa-docker-images/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/aws/amazon-mwaa-docker-images/pull/484","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Famazon-mwaa-docker-images/issues/484","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/484/packages"}},{"old_version":"2.10.3","new_version":"3.2.1rc1","update_type":"major","path":null,"pr_created_at":"2026-05-06T11:04:01.000Z","version_change":"2.10.3 → 3.2.1rc1","issue":{"uuid":"4390824801","node_id":"PR_kwDOKDFbvM7YvMHB","number":23,"state":"open","title":"Bump apache-airflow from 2.10.3 to 3.2.1rc1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-06T11:04:01.000Z","updated_at":"2026-05-30T14:53:59.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"2.10.3","new_version":"3.2.1rc1","repository_url":"https://github.com/apache/airflow"}],"path":null,"ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 2.10.3 to 3.2.1rc1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/b457a3001f055dabbf73b8562026113ac9d91488\"\u003e\u003ccode\u003eb457a30\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/200a7e13a628316ad8020cfc31f5dff888d0e748\"\u003e\u003ccode\u003e200a7e1\u003c/code\u003e\u003c/a\u003e Update version to 3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3abf7e0d9fcdbedd9562184dd96171f7a5e5d5b3\"\u003e\u003ccode\u003e3abf7e0\u003c/code\u003e\u003c/a\u003e update release notes of 3.2.0 specifying \u003ccode\u003esqlalchemy[asyncio]\u0026gt;=2.0.48\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/6513\"\u003e#6513\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/daae7bbfef9e2fc19f01facd4d2b1c65e9495ae6\"\u003e\u003ccode\u003edaae7bb\u003c/code\u003e\u003c/a\u003e Restore \u003ccode\u003edeactivate_deleted_dags\u003c/code\u003e signature broken by \u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64245\"\u003e#64245\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65312\"\u003e#65312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/519c4f1cf2dc8e90ad910407895d86e7e74689de\"\u003e\u003ccode\u003e519c4f1\u003c/code\u003e\u003c/a\u003e fix: use Dag form when materializing asset (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64211\"\u003e#64211\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65303\"\u003e#65303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7c4dbf9ead4e2fd0eddb853fd5858517ba1431eb\"\u003e\u003ccode\u003e7c4dbf9\u003c/code\u003e\u003c/a\u003e Change default sort to 'id' for list task instances (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64168\"\u003e#64168\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65297\"\u003e#65297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/7ba62fcc3924564c03b55da60ce3d6ba8c9882e6\"\u003e\u003ccode\u003e7ba62fc\u003c/code\u003e\u003c/a\u003e Fix zip DAG import errors being cleared during bundle refresh (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65296\"\u003e#65296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8a3af78363955dc4de4a74a57ed5143c999c3b7c\"\u003e\u003ccode\u003e8a3af78\u003c/code\u003e\u003c/a\u003e Remove outdated TODO comment about permissions (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64169\"\u003e#64169\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65295\"\u003e#65295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f6dc7714270808a0762b1fc6b77c500d23954ca3\"\u003e\u003ccode\u003ef6dc771\u003c/code\u003e\u003c/a\u003e fix(connection-model): RFC3896 \u003ccode\u003econn_type\u003c/code\u003e warning (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63167\"\u003e#63167\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65294\"\u003e#65294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/f55ed5c070d77e7370a88763b10a53b38e09f5ee\"\u003e\u003ccode\u003ef55ed5c\u003c/code\u003e\u003c/a\u003e Add overridable metadata engine creation hooks in \u003ccode\u003esettings.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/62184\"\u003e#62184\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65\"\u003e#65\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/2.10.3...3.2.1rc1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=2.10.3\u0026new-version=3.2.1rc1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/profcomff/dwh-airflow/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/profcomff/dwh-airflow/pull/23","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/profcomff%2Fdwh-airflow/issues/23","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23/packages"}},{"old_version":"3.1.0","new_version":"3.2.1","update_type":"minor","path":null,"pr_created_at":"2026-04-27T03:49:39.000Z","version_change":"3.1.0 → 3.2.1","issue":{"uuid":"4332951314","node_id":"PR_kwDOQyc5x87V0QBp","number":22,"state":"open","title":"chore(deps): bump apache-airflow from 3.1.0 to 3.2.1","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-27T03:49:39.000Z","updated_at":"2026-04-27T03:49:39.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"apache-airflow","old_version":"3.1.0","new_version":"3.2.1","repository_url":"https://github.com/apache/airflow"}],"path":null,"ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 3.1.0 to 3.2.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.1\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.1/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.1/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.1/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.1/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.1/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.1/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.1\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.1\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUsers who only have read access to DAGs will no longer be able to fetch data from the \u003ccode\u003e/dags\u003c/code\u003e endpoint, as it now requires additional permissions (\u003ccode\u003eDagAccessEntity.RUN\u003c/code\u003e, \u003ccode\u003eDagAccessEntity.HITL_DETAIL\u003c/code\u003e, and \u003ccode\u003eDagAccessEntity.TASK_INSTANCE\u003c/code\u003e). This change was made because the endpoint returns aggregated data from these multiple entities. Please update your custom user roles to include read access for DAG Runs, Task Instances, and HITL Details if those users should still have access to the \u003ccode\u003e/dags\u003c/code\u003e endpoint. (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64822\"\u003e#64822\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow UI theme config with only CSS overrides, icon only, or empty \u003ccode\u003e{}\u003c/code\u003e to restore OSS defaults. The \u003ccode\u003etokens\u003c/code\u003e field is now optional in the theme configuration. (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64552\"\u003e#64552\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eDEFAULT_LOGGING_CONFIG\u003c/code\u003e to use right \u003ccode\u003ekwargs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65412\"\u003e#65412\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65424\"\u003e#65424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix zip DAG import errors being cleared during bundle refresh (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63617\"\u003e#63617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65296\"\u003e#65296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edispose_orm()\u003c/code\u003e not disposing async engine on shutdown (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65274\"\u003e#65274\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65284\"\u003e#65284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eget_team_name_dep\u003c/code\u003e creating wasted async sessions when \u003ccode\u003emulti_team=False\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65275\"\u003e#65275\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65282\"\u003e#65282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix asset graph view leaking DAGs outside the user's permissions (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65273\"\u003e#65273\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65280\"\u003e#65280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix migration: add missing \u003ccode\u003edisable_sqlite_fkeys\u003c/code\u003e to migration 0108 (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65288\"\u003e#65288\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65290\"\u003e#65290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix heartbeat: add fast-path \u003ccode\u003eUPDATE\u003c/code\u003e to avoid row lock in the common case (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65029\"\u003e#65029\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65137\"\u003e#65137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUI: Fix deactivated state not shown for stale DAGs (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65214\"\u003e#65214\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65218\"\u003e#65218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix N+1 queries during DAG serialization with bulk prefetch (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64929\"\u003e#64929\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65208\"\u003e#65208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix serializer for empty string extra in connection (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65014\"\u003e#65014\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65215\"\u003e#65215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUI: Fix menu positioning for \u003ccode\u003edropdowns\u003c/code\u003e in connection forms (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65007\"\u003e#65007\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65085\"\u003e#65085\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65138\"\u003e#65138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUI: Fix \u003ccode\u003eSearchBar\u003c/code\u003e value not syncing with \u003ccode\u003edefaultValue\u003c/code\u003e changes (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65054\"\u003e#65054\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65140\"\u003e#65140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix SDK configuration to use \u003ccode\u003e$AIRFLOW_CONFIG\u003c/code\u003e env (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64936\"\u003e#64936\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65200\"\u003e#65200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSession\u003c/code\u003e staying opened between yields (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65179\"\u003e#65179\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65195\"\u003e#65195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSession\u003c/code\u003e leak from \u003ccode\u003eStreamingResponse\u003c/code\u003e API endpoints (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65162\"\u003e#65162\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65193\"\u003e#65193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix redirect loop when stale root-path \u003ccode\u003e_token\u003c/code\u003e cookie exists from older Airflow instance (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64955\"\u003e#64955\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65177\"\u003e#65177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e@task\u003c/code\u003e decorator to validate operator arg types at decoration time (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65041\"\u003e#65041\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65050\"\u003e#65050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix CLI error handling and exit codes for failed commands (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65052\"\u003e#65052\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65097\"\u003e#65097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eis_alive\u003c/code\u003e default to \u003ccode\u003eNone\u003c/code\u003e in \u003ccode\u003ejobs list\u003c/code\u003e CLI (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65065\"\u003e#65065\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65091\"\u003e#65091\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing \u003ccode\u003edag_id\u003c/code\u003e in \u003ccode\u003eget_task_instance\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64957\"\u003e#64957\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64968\"\u003e#64968\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65067\"\u003e#65067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUI: Fix cancel \u003ccode\u003edebounce\u003c/code\u003e on clear to prevent stale search value (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64893\"\u003e#64893\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64907\"\u003e#64907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix read out-of-order issue with send method in \u003ccode\u003eCommsDecoder\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64894\"\u003e#64894\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64946\"\u003e#64946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bulk connection delete banner (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64735\"\u003e#64735\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64961\"\u003e#64961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix migrations: move \u003ccode\u003eUPDATE\u003c/code\u003es inside \u003ccode\u003edisable_sqlite_fkeys\u003c/code\u003e in migration 0097 (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64876\"\u003e#64876\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64940\"\u003e#64940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix heartbeat to return 410 Gone when cleared \u003ccode\u003eTI\u003c/code\u003e exists in TIH (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/61631\"\u003e#61631\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64693\"\u003e#64693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix scheduler: skip asset-triggered Dags without \u003ccode\u003eSerializedDagModel\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64322\"\u003e#64322\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64738\"\u003e#64738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix N+1 query pattern in task instance states and count endpoints (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/60352\"\u003e#60352\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64695\"\u003e#64695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eTypeError\u003c/code\u003e in \u003ccode\u003eGET /dags/{dag_id}/tasks\u003c/code\u003e when \u003ccode\u003eorder_by\u003c/code\u003e field has \u003ccode\u003eNone\u003c/code\u003e values (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64384\"\u003e#64384\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64587\"\u003e#64587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUI: Fix duplicate nav sidebar when iframe navigates away from auth pages (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63873\"\u003e#63873\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64854\"\u003e#64854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUI: Fix Gantt view \u0026quot;Error invalid date\u0026quot; on running \u003ccode\u003eDagRun\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64752\"\u003e#64752\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64853\"\u003e#64853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003econnections import\u003c/code\u003e returning non-zero exit code on failure (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64416\"\u003e#64416\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64449\"\u003e#64449\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/apache/airflow/commit/e5968b88e45f2af9d1047a51188355af7cbe79f4\"\u003e\u003ccode\u003ee5968b8\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/039debbd21891fb581a77b3c5870d616941b4219\"\u003e\u003ccode\u003e039debb\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix graph view not auto-refreshing task states during DAG run (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/b38926999ff8f2c8322f82fe083317f834ed6c48\"\u003e\u003ccode\u003eb389269\u003c/code\u003e\u003c/a\u003e [v3-2-test] Split constraint update workflow for stable branches (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65526\"\u003e#65526\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/aa333101a9fefb7faa6945dad4d3c0e4a8899097\"\u003e\u003ccode\u003eaa33310\u003c/code\u003e\u003c/a\u003e [v3-2-test] Upgrade important CI environment (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65525\"\u003e#65525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0ceaba63ae749a2a26dda5997726168c11f62ad6\"\u003e\u003ccode\u003e0ceaba6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Lower-bind FAB provider, to latest line. (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65523\"\u003e#65523\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65524\"\u003e#65524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/01bbe9341772549893f5888a9473930e5159108a\"\u003e\u003ccode\u003e01bbe93\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d8c85589cccf56532305f67a61292133a5fd3366\"\u003e\u003ccode\u003ed8c8558\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix DEFAULT_LOGGING_CONFIG use right kwargs (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65412\"\u003e#65412\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65424\"\u003e#65424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/71fff84fc9d7451c958c440c10f4cc0b82ec51d3\"\u003e\u003ccode\u003e71fff84\u003c/code\u003e\u003c/a\u003e [v3-2-test] Close Catalan gap (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65078\"\u003e#65078\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65389\"\u003e#65389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/b88b049c8bac65a6667c939b216296381d30de4a\"\u003e\u003ccode\u003eb88b049\u003c/code\u003e\u003c/a\u003e [v3-2-test] Close German Translation Gaps 2026-04-15 (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/65332\"\u003e#65332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/b457a3001f055dabbf73b8562026113ac9d91488\"\u003e\u003ccode\u003eb457a30\u003c/code\u003e\u003c/a\u003e update release notes for 3.2.1rc1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/3.1.0...3.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=uv\u0026previous-version=3.1.0\u0026new-version=3.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/EvertonSA/airflow-yet-another-exporter/pull/22","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvertonSA%2Fairflow-yet-another-exporter/issues/22","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22/packages"}},{"old_version":"2.6.3","new_version":"3.2.0","update_type":"major","path":null,"pr_created_at":"2026-04-22T04:23:40.000Z","version_change":"2.6.3 → 3.2.0","issue":{"uuid":"4306680592","node_id":"PR_kwDOOK9uiM7UgKJU","number":211,"state":"open","title":"chore(deps): bump the pip group across 74 directories with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-22T04:23:40.000Z","updated_at":"2026-05-01T05:47:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":7,"packages":[{"name":"pytest","old_version":"7.4.0","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"python-dotenv","old_version":"1.0.0","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"lxml","old_version":"4.9.3","new_version":"6.1.0","repository_url":"https://github.com/lxml/lxml"},{"name":"apache-airflow","old_version":"2.6.3","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"},{"name":"cryptography","old_version":"40.0.2","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 2 updates in the /alloydb/notebooks directory: [pytest](https://github.com/pytest-dev/pytest) and [nbconvert](https://github.com/jupyter/nbconvert).\nBumps the pip group with 1 update in the /aml-ai directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /asset/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/api-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/cloud-client-temp directory: [pytest](https://github.com/pytest-dev/pytest) and [python-dotenv](https://github.com/theskumar/python-dotenv).\nBumps the pip group with 1 update in the /auth/downscoping directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/service-to-service directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /automl/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /batch directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-connection/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-datatransfer/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-migration/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-reservation/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/bigframes directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/bqml directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/continuous-queries directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/pandas-gbq-migration directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/pyarrow directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/quickstart directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/to_dataframe directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /billing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /blog/introduction_to_data_models_in_cloud_datastore directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cdn directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /cloud-media-livestream/keypublisher directory: [pytest](https://github.com/pytest-dev/pytest) and [lxml](https://github.com/lxml/lxml).\nBumps the pip group with 1 update in the /cloud_scheduler/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloud_tasks/http_queues directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloud_tasks/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloudbuild/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 5 updates in the /composer/2022_airflow_summit directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.0` | `1.2.2` |\n| [lxml](https://github.com/lxml/lxml) | `4.9.3` | `6.1.0` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n\nBumps the pip group with 1 update in the /composer/airflow_1_samples directory: [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 5 updates in the /composer/cicd_sample directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.0` | `1.2.2` |\n| [lxml](https://github.com/lxml/lxml) | `4.9.3` | `6.1.0` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n\nBumps the pip group with 1 update in the /composer/functions directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /composer/rest directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 5 updates in the /composer/workflows directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.4` | `9.0.3` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.2` |\n| [lxml](https://github.com/lxml/lxml) | `5.2.2` | `6.1.0` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.9.2` | `3.2.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `41.0.7` | `46.0.7` |\n\nBumps the pip group with 1 update in the /compute/api directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /compute/auth directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /compute/client_library directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/encryption directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /compute/load_balancing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /compute/metadata directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /compute/oslogin directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /connectgateway directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contact-center-insights/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /container/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /containeranalysis/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contentwarehouse/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/quickstart directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/v1beta1 directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/encryption-keys directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/extensible-templates directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /dataflow/gemma directory: [pytest](https://github.com/pytest-dev/pytest) and [keras](https://github.com/keras-team/keras).\nBumps the pip group with 1 update in the /dataflow/gemma-flex-template directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/run-inference directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datalabeling/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataplex/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataproc/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datastore/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow-cx directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /discoveryengine directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /gemma2 directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /iap directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 2 updates in the /media_cdn directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /notebooks directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /servicedirectory directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagecontrol directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagetransfer directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /talent directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /tpu directory: [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `pytest` from 8.3.3 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nbconvert` from 7.16.6 to 7.17.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyter/nbconvert/releases\"\u003enbconvert's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.17.1\u003c/h2\u003e\n\u003ch2\u003e7.17.1\u003c/h2\u003e\n\u003cp\u003eThis is a security release, fixing two CVEs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/security/advisories/GHSA-4c99-qj7h-p3vg\"\u003eCVE-2026-39377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/security/advisories/GHSA-7jqv-fw35-gmx9\"\u003eCVE-2026-39378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e(full advisories will be published seven days after release, on 2026-04-14).\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.17.0...b3b6ec01f872e9af8fd1769eb9cf1889c720ecf3\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configureable WebPDF JavaScript processing timeout \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2250\"\u003e#2250\u003c/a\u003e (\u003ca href=\"https://github.com/timkpaine\"\u003e\u003ccode\u003e@​timkpaine\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ePermissionError\u003c/code\u003e when checking template paths on shared filesystems \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2252\"\u003e#2252\u003c/a\u003e (\u003ca href=\"https://github.com/ctcjab\"\u003e\u003ccode\u003e@​ctcjab\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTweak webpdf template logic to fix duplicate extension problem \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2249\"\u003e#2249\u003c/a\u003e (\u003ca href=\"https://github.com/timkpaine\"\u003e\u003ccode\u003e@​timkpaine\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003especify python version for pre \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2276\"\u003e#2276\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\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/nbconvert/graphs/contributors?from=2026-01-29\u0026amp;to=2026-04-08\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/akhmerov\"\u003e\u003ccode\u003e@​akhmerov\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Aakhmerov+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Abollwyvl+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3ACarreau+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/ctcjab\"\u003e\u003ccode\u003e@​ctcjab\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Actcjab+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Adavidbrochart+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Ken-B\"\u003e\u003ccode\u003e@​Ken-B\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AKen-B+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Akrassowski+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mgeier\"\u003e\u003ccode\u003e@​mgeier\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Amgeier+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Aminrk+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mpacer\"\u003e\u003ccode\u003e@​mpacer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ampacer+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/MSeal\"\u003e\u003ccode\u003e@​MSeal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AMSeal+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/SylvainCorlay\"\u003e\u003ccode\u003e@​SylvainCorlay\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3ASylvainCorlay+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/takluyver\"\u003e\u003ccode\u003e@​takluyver\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Atakluyver+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/timkpaine\"\u003e\u003ccode\u003e@​timkpaine\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Atimkpaine+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev7.17.0\u003c/h2\u003e\n\u003ch2\u003e7.17.0\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.16.6...c9ac1d1040459ed1ff9eb34e9918ce5a87cf9d71\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for arbitrary browser arguments \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2227\"\u003e#2227\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix QtPNGExporter returning empty bytes on macOS \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2264\"\u003e#2264\u003c/a\u003e (\u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md\"\u003enbconvert's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.17.1\u003c/h2\u003e\n\u003cp\u003eThis is a security release, fixing two CVEs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/security/advisories/GHSA-4c99-qj7h-p3vg\"\u003eCVE-2026-39377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/security/advisories/GHSA-7jqv-fw35-gmx9\"\u003eCVE-2026-39378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e(full advisories will be published seven days after release, on 2026-04-14).\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.17.0...b3b6ec01f872e9af8fd1769eb9cf1889c720ecf3\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configureable WebPDF JavaScript processing timeout \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2250\"\u003e#2250\u003c/a\u003e (\u003ca href=\"https://github.com/timkpaine\"\u003e\u003ccode\u003e@​timkpaine\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ePermissionError\u003c/code\u003e when checking template paths on shared filesystems \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2252\"\u003e#2252\u003c/a\u003e (\u003ca href=\"https://github.com/ctcjab\"\u003e\u003ccode\u003e@​ctcjab\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTweak webpdf template logic to fix duplicate extension problem \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2249\"\u003e#2249\u003c/a\u003e (\u003ca href=\"https://github.com/timkpaine\"\u003e\u003ccode\u003e@​timkpaine\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003especify python version for pre \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2276\"\u003e#2276\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\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/nbconvert/graphs/contributors?from=2026-01-29\u0026amp;to=2026-04-08\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/akhmerov\"\u003e\u003ccode\u003e@​akhmerov\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Aakhmerov+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Abollwyvl+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3ACarreau+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/ctcjab\"\u003e\u003ccode\u003e@​ctcjab\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Actcjab+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Adavidbrochart+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Ken-B\"\u003e\u003ccode\u003e@​Ken-B\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AKen-B+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Akrassowski+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mgeier\"\u003e\u003ccode\u003e@​mgeier\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Amgeier+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Aminrk+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mpacer\"\u003e\u003ccode\u003e@​mpacer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ampacer+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/MSeal\"\u003e\u003ccode\u003e@​MSeal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AMSeal+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/SylvainCorlay\"\u003e\u003ccode\u003e@​SylvainCorlay\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3ASylvainCorlay+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/takluyver\"\u003e\u003ccode\u003e@​takluyver\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Atakluyver+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/timkpaine\"\u003e\u003ccode\u003e@​timkpaine\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Atimkpaine+updated%3A2026-01-29..2026-04-08\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e7.17.0\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.16.6...c9ac1d1040459ed1ff9eb34e9918ce5a87cf9d71\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for arbitrary browser arguments \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2227\"\u003e#2227\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix QtPNGExporter returning empty bytes on macOS \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2264\"\u003e#2264\u003c/a\u003e (\u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVE-2025-53000: Secure Inkscape Windows path (registry first + block CWD) \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2261\"\u003e#2261\u003c/a\u003e (\u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/mberlanda\"\u003e\u003ccode\u003e@​mberlanda\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/salmankadaya\"\u003e\u003ccode\u003e@​salmankadaya\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/th3gowtham\"\u003e\u003ccode\u003e@​th3gowtham\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix get_export_names and get_exporter default args \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2228\"\u003e#2228\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePyPA-Compliant Summary \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2226\"\u003e#2226\u003c/a\u003e (\u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/78ed30837a607deab7cf0a12dca072bf3f63417a\"\u003e\u003ccode\u003e78ed308\u003c/code\u003e\u003c/a\u003e Publish 7.17.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/f090a64606fde4c7f87cbf478f51b4aa46a425ec\"\u003e\u003ccode\u003ef090a64\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/b3b6ec01f872e9af8fd1769eb9cf1889c720ecf3\"\u003e\u003ccode\u003eb3b6ec0\u003c/code\u003e\u003c/a\u003e chore: update pre-commit hooks (\u003ca href=\"https://redirect.github.com/jupyter/nbconvert/issues/2277\"\u003e#2277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/be4841f7da51c499b1937e41e6e71926dbe0daa3\"\u003e\u003ccode\u003ebe4841f\u003c/code\u003e\u003c/a\u003e ignore silly security lint in tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/26d57b295870f5572d9bd0535acee4a120339c10\"\u003e\u003ccode\u003e26d57b2\u003c/code\u003e\u003c/a\u003e fix type annotation on Lexer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/0e6b8ccabf2aca6c18fac8c574f22b7155f441fb\"\u003e\u003ccode\u003e0e6b8cc\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/ba5e5cdd737704388251fa55fa9e58f5752fa39d\"\u003e\u003ccode\u003eba5e5cd\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/1db0c88d865146ce02b6405a8d96753d3d0cd0c2\"\u003e\u003ccode\u003e1db0c88\u003c/code\u003e\u003c/a\u003e Specify python version for pre (\u003ca href=\"https://redirect.github.com/jupyter/nbconvert/issues/2276\"\u003e#2276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/7473fc3037a6317bff54380e3a7162d73bf089b3\"\u003e\u003ccode\u003e7473fc3\u003c/code\u003e\u003c/a\u003e chore: update pre-commit hooks (\u003ca href=\"https://redirect.github.com/jupyter/nbconvert/issues/2242\"\u003e#2242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/4322f7f290694929f414cefadc942111afad3762\"\u003e\u003ccode\u003e4322f7f\u003c/code\u003e\u003c/a\u003e Bump the actions group across 1 directory with 2 updates (\u003ca href=\"https://redirect.github.com/jupyter/nbconvert/issues/2273\"\u003e#2273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.16.6...v7.17.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\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.2 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/cod...\n\n_Description has been truncated_","html_url":"https://github.com/Reality2byte/python-docs-samples/pull/211","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reality2byte%2Fpython-docs-samples/issues/211","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/211/packages"}},{"old_version":"2.9.2","new_version":"3.2.0","update_type":"major","path":"/tests/images/airflow/2.9.2","pr_created_at":"2026-04-16T21:46:52.000Z","version_change":"2.9.2 → 3.2.0","issue":{"uuid":"4278696690","node_id":"PR_kwDOK56Ncs7THaT5","number":470,"state":"closed","title":"Bump apache-airflow from 2.9.2 to 3.2.0 in /tests/images/airflow/2.9.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-20T18:37:47.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-16T21:46:52.000Z","updated_at":"2026-04-20T18:37:57.000Z","time_to_close":334255,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"2.9.2","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":"/tests/images/airflow/2.9.2","ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 2.9.2 to 3.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/2.9.2...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=2.9.2\u0026new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/aws/amazon-mwaa-docker-images/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/aws/amazon-mwaa-docker-images/pull/470","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Famazon-mwaa-docker-images/issues/470","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/470/packages"}},{"old_version":"2.10.1","new_version":"3.2.0","update_type":"major","path":"/tests/images/airflow/2.10.1","pr_created_at":"2026-04-16T21:30:22.000Z","version_change":"2.10.1 → 3.2.0","issue":{"uuid":"4278629368","node_id":"PR_kwDOK56Ncs7THMs9","number":466,"state":"closed","title":"Bump apache-airflow from 2.10.1 to 3.2.0 in /tests/images/airflow/2.10.1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-20T18:37:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-16T21:30:22.000Z","updated_at":"2026-04-20T18:38:06.000Z","time_to_close":335255,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"2.10.1","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":"/tests/images/airflow/2.10.1","ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 2.10.1 to 3.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/2.10.1...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=2.10.1\u0026new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/aws/amazon-mwaa-docker-images/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/aws/amazon-mwaa-docker-images/pull/466","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Famazon-mwaa-docker-images/issues/466","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/466/packages"}},{"old_version":"3.1.7","new_version":"3.2.0","update_type":"minor","path":null,"pr_created_at":"2026-04-15T21:30:16.000Z","version_change":"3.1.7 → 3.2.0","issue":{"uuid":"4271818341","node_id":"PR_kwDOO147D87SyHLP","number":31,"state":"closed","title":"Bump the pip group across 2 directories with 6 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-21T22:24:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-15T21:30:16.000Z","updated_at":"2026-04-21T22:24:51.000Z","time_to_close":521673,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":6,"packages":[{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"black","old_version":"26.1.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"apache-airflow","old_version":"3.1.7","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"},{"name":"cryptography","old_version":"46.0.5","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.26","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"tornado","old_version":"6.5.4","new_version":"6.5.5","repository_url":"https://github.com/tornadoweb/tornado"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 6 updates in the /iomete-airflow-plugin directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [black](https://github.com/psf/black) | `26.1.0` | `26.3.1` |\n| [apache-airflow](https://github.com/apache/airflow) | `3.1.7` | `3.2.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` | `46.0.7` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.26` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.4` | `6.5.5` |\n\nBumps the pip group with 1 update in the /py-hive-iomete directory: [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `pytest` from 9.0.2 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 26.1.0 to 26.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop evenloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop eventloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c6755bb741b6481d6b3d3bb563c83fa060db96c9\"\u003e\u003ccode\u003ec6755bb\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5046\"\u003e#5046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69973fd6950985fbeb1090d96da717dc4d8380b0\"\u003e\u003ccode\u003e69973fd\u003c/code\u003e\u003c/a\u003e Harden blackd browser-facing request handling (\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4937fe6cf241139ddbfc16b0bdbb5b422798909d\"\u003e\u003ccode\u003e4937fe6\u003c/code\u003e\u003c/a\u003e Fix some shenanigans with the cache file and IPython (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2e641d174469c505d5ae905e75d4c769597e681f\"\u003e\u003ccode\u003e2e641d1\u003c/code\u003e\u003c/a\u003e docs: remove outdated Black Playground references (\u003ca href=\"https://redirect.github.com/psf/black/issues/5044\"\u003e#5044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c014b22a2d5e0632587b47b81151658bddfa0b88\"\u003e\u003ccode\u003ec014b22\u003c/code\u003e\u003c/a\u003e Remove unused internal code (\u003ca href=\"https://redirect.github.com/psf/black/issues/5041\"\u003e#5041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0dae20b2d009f2f03de8696d06b0c947d3abafc9\"\u003e\u003ccode\u003e0dae20b\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5036\"\u003e#5036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c5c1cbddd92cecb554ac2a77a24139dd76831030\"\u003e\u003ccode\u003ec5c1cbd\u003c/code\u003e\u003c/a\u003e Minor release patches (\u003ca href=\"https://redirect.github.com/psf/black/issues/5035\"\u003e#5035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7e5a828c37d71b6a6666e28eed444816def6a8f4\"\u003e\u003ccode\u003e7e5a828\u003c/code\u003e\u003c/a\u003e docs: clarify relationship between Black style and PEP 8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5025\"\u003e#5025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69705deb8776e7c5e585668da106d1abe2cb8d77\"\u003e\u003ccode\u003e69705de\u003c/code\u003e\u003c/a\u003e docs: add clearer pyproject configuration guidance (\u003ca href=\"https://redirect.github.com/psf/black/issues/5026\"\u003e#5026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/35ea67920b7f6ac8e09be1c47278752b1e827f76\"\u003e\u003ccode\u003e35ea679\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5032\"\u003e#5032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.1.0...26.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apache-airflow` from 3.1.7 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/3.1.7...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 46.0.5 to 46.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.7 - 2026-04-07\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could be\n  passed to APIs that accept Python buffers, which could lead to buffer\n  overflow. **CVE-2026-39892**\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.6.\n\u003cp\u003e.. _v46-0-6:\u003c/p\u003e\n\u003cp\u003e46.0.6 - 2026-03-25\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSECURITY ISSUE\u003c/strong\u003e: Fixed a bug where name constraints were not applied\nto peer names during verification when the leaf certificate contains a\nwildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\nincluding those used by the Web PKI. Credit to \u003cstrong\u003eOleh Konko (1seal)\u003c/strong\u003e for\nreporting the issue. \u003cstrong\u003eCVE-2026-34073\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-5:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5\"\u003e\u003ccode\u003e622d672\u003c/code\u003e\u003c/a\u003e 46.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14602\"\u003e#14602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/91d728897bdad30cd5c79a2b23e207f1f050d587\"\u003e\u003ccode\u003e91d7288\u003c/code\u003e\u003c/a\u003e Cherry-pick \u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14542\"\u003e#14542\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14543\"\u003e#14543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.5...46.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.26\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\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/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\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/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d3a4698e0dc16cbd85f98076b2ebf9b696cd3604\"\u003e\u003ccode\u003ed3a4698\u003c/code\u003e\u003c/a\u003e Add MIME content type info to File (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/9a1ecbd074801fcd3911266f3f4442181d10ab92\"\u003e\u003ccode\u003e9a1ecbd\u003c/code\u003e\u003c/a\u003e Handle CTE values case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/ef2a0b94f95676ea6a7b77d2252b09f5797cb8ed\"\u003e\u003ccode\u003eef2a0b9\u003c/code\u003e\u003c/a\u003e Remove custom FormParser classes (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3a757d7cf209e654eb17cf7b7af868eed469f680\"\u003e\u003ccode\u003e3a757d7\u003c/code\u003e\u003c/a\u003e Ignore local Claude state (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/255\"\u003e#255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/55e739617db7c40e2cd04c5ad8c7acf2ed0a1d19\"\u003e\u003ccode\u003e55e7396\u003c/code\u003e\u003c/a\u003e fuzz: Add cifuzz (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/186\"\u003e#186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d6d1d111e7de9ce3d3f8623fe5f5e4201c0a5fd1\"\u003e\u003ccode\u003ed6d1d11\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/249\"\u003e#249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tornado` from 6.5.4 to 6.5.5\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.5.5\nreleases/v6.5.4\nreleases/v6.5.3\nreleases/v6.5.2\nreleases/v6.5.1\nreleases/v6.5.0\nreleases/v6.4.2\nreleases/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\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/7d6465056ceb7a054b3f64cf1c18271753b10482\"\u003e\u003ccode\u003e7d64650\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3586\"\u003e#3586\u003c/a\u003e from bdarnell/update-cibw\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/d05d59b8080a0d5d6a260994c7aad7049209d345\"\u003e\u003ccode\u003ed05d59b\u003c/code\u003e\u003c/a\u003e build: Bump cibuildwheel to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/c2f46732b0ad14bf0db4219c96a945f4b60205f5\"\u003e\u003ccode\u003ec2f4673\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3585\"\u003e#3585\u003c/a\u003e from bdarnell/release-655\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/e5f1aa4b6fa2c16b29024830227838fcb0c79b6f\"\u003e\u003ccode\u003ee5f1aa4\u003c/code\u003e\u003c/a\u003e Release notes and version bump for v6.5.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/78a046f99f89977dfc8ff5a1fe16d298afbeeaca\"\u003e\u003ccode\u003e78a046f\u003c/code\u003e\u003c/a\u003e httputil: Add CRLF to _FORBIDDEN_HEADER_CHARS_RE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/24a2d96ea115f663b223887deb0060f13974c104\"\u003e\u003ccode\u003e24a2d96\u003c/code\u003e\u003c/a\u003e web: Validate characters in all cookie attributes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/119a195e290c43ad2d63a2cf012c29d43d6ed839\"\u003e\u003ccode\u003e119a195\u003c/code\u003e\u003c/a\u003e httputil: Add limits on multipart form data parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tornadoweb/tornado/compare/v6.5.4...v6.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 3.2.1 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/iomete/iomete-integrations/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/iomete/iomete-integrations/pull/31","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/iomete%2Fiomete-integrations/issues/31","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/31/packages"}},{"old_version":"2.6.3","new_version":"3.2.0","update_type":"major","path":null,"pr_created_at":"2026-04-15T00:03:29.000Z","version_change":"2.6.3 → 3.2.0","issue":{"uuid":"4265425691","node_id":"PR_kwDOO-I9t87SeW-R","number":20,"state":"open","title":"chore(deps): bump the pip group across 74 directories with 6 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-15T00:03:29.000Z","updated_at":"2026-04-15T00:03:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":6,"packages":[{"name":"pytest","old_version":"7.4.0","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"requests","old_version":"2.31.0","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"pyopenssl","old_version":"23.2.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"cryptography","old_version":"40.0.2","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"apache-airflow","old_version":"2.6.3","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 1 update in the /alloydb/notebooks directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /aml-ai directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /asset/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/api-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/downscoping directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/service-to-service directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /automl/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /batch directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-connection/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-datatransfer/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-migration/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-reservation/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/bqml directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /bigquery/continuous-queries directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /bigquery/pandas-gbq-migration directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /billing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /blog/introduction_to_data_models_in_cloud_datastore directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cdn directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /cloud-media-livestream/keypublisher directory: [pytest](https://github.com/pytest-dev/pytest), [requests](https://github.com/psf/requests) and [pyopenssl](https://github.com/pyca/pyopenssl).\nBumps the pip group with 1 update in the /cloud_scheduler/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /cloud_tasks/http_queues directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /cloud_tasks/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloudbuild/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 5 updates in the /composer/2022_airflow_summit directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 2 updates in the /composer/airflow_1_samples directory: [pyopenssl](https://github.com/pyca/pyopenssl) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 5 updates in the /composer/cicd_sample directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 1 update in the /composer/functions directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /composer/rest directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 5 updates in the /composer/workflows directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.4` | `9.0.3` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `24.1.0` | `26.0.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `41.0.7` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.9.2` | `3.2.0` |\n\nBumps the pip group with 1 update in the /compute/api directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/auth directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /compute/client_library directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /compute/encryption directory: [pytest](https://github.com/pytest-dev/pytest), [requests](https://github.com/psf/requests) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /compute/load_balancing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/metadata directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 2 updates in the /compute/oslogin directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /connectgateway directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contact-center-insights/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /container/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /containeranalysis/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contentwarehouse/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/quickstart directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/v1beta1 directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/encryption-keys directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/extensible-templates directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/gemma directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/gemma-flex-template directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /dataflow/run-inference directory: [pytest](https://github.com/pytest-dev/pytest) and [transformers](https://github.com/huggingface/transformers).\nBumps the pip group with 1 update in the /dataflow/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datalabeling/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataplex/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataproc/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datastore/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datastore/cloud-ndb directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow-cx directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /discoveryengine directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dlp/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /documentai/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/bookstore-grpc directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/bookstore-grpc-transcoding directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/getting-started-grpc directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /gemma2 directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /iap directory: [pytest](https://github.com/pytest-dev/pytest), [requests](https://github.com/psf/requests) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 2 updates in the /media_cdn directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /notebooks directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /servicedirectory directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagecontrol directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagetransfer directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /talent directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /tpu directory: [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `pytest` from 8.3.3 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.4 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"ht...\n\n_Description has been truncated_","html_url":"https://github.com/ASISBusiness/python-docs-samples/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ASISBusiness%2Fpython-docs-samples/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"}},{"old_version":"3.1.7","new_version":"3.2.0","update_type":"minor","path":"/DDS Group Project","pr_created_at":"2026-04-14T02:04:03.000Z","version_change":"3.1.7 → 3.2.0","issue":{"uuid":"4259000808","node_id":"PR_kwDORP7Sec7SK8m-","number":33,"state":"closed","title":"Bump apache-airflow from 3.1.7 to 3.2.0 in /DDS Group Project","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-14T05:42:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-14T02:04:03.000Z","updated_at":"2026-04-14T05:42:44.000Z","time_to_close":13119,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"3.1.7","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":"/DDS Group Project","ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 3.1.7 to 3.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/3.1.7...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=uv\u0026previous-version=3.1.7\u0026new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/vuhcl/vinyl-management-system/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/vuhcl/vinyl-management-system/pull/33","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vuhcl%2Fvinyl-management-system/issues/33","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/33/packages"}},{"old_version":"2.6.3","new_version":"3.2.0","update_type":"major","path":null,"pr_created_at":"2026-04-14T00:14:34.000Z","version_change":"2.6.3 → 3.2.0","issue":{"uuid":"4258639598","node_id":"PR_kwDOPKAtms7SJ2Ss","number":24,"state":"closed","title":"chore(deps): bump the pip group across 69 directories with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-14T00:35:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-14T00:14:34.000Z","updated_at":"2026-04-14T00:35:58.000Z","time_to_close":1282,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":7,"packages":[{"name":"requests","old_version":"2.31.0","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"pytest","old_version":"7.4.0","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pyopenssl","old_version":"23.2.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"black","old_version":"23.1a1","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"cryptography","old_version":"40.0.2","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"apache-airflow","old_version":"2.6.3","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 2 updates in the /aml-ai directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /asset/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/api-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/downscoping directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/service-to-service directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /automl/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /batch directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-connection/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-datatransfer/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-migration/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-reservation/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/bqml directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /bigquery/continuous-queries directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/pandas-gbq-migration directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /billing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /blog/introduction_to_data_models_in_cloud_datastore directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cdn directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /cloud-media-livestream/keypublisher directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [pyopenssl](https://github.com/pyca/pyopenssl).\nBumps the pip group with 1 update in the /cloud_scheduler/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /cloud_tasks/http_queues directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloud_tasks/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloudbuild/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 6 updates in the /composer/2022_airflow_summit directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 2 updates in the /composer/airflow_1_samples directory: [pyopenssl](https://github.com/pyca/pyopenssl) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 6 updates in the /composer/cicd_sample directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 1 update in the /composer/functions directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /composer/rest directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 6 updates in the /composer/workflows directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.4` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `24.1.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `24.4.2` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `41.0.7` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.9.2` | `3.2.0` |\n\nBumps the pip group with 1 update in the /compute/api directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/auth directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/client_library directory: [pytest](https://github.com/pytest-dev/pytest) and [black](https://github.com/psf/black).\nBumps the pip group with 3 updates in the /compute/encryption directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /compute/load_balancing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/metadata directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/oslogin directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contact-center-insights/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /container/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /containeranalysis/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contentwarehouse/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/quickstart directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/v1beta1 directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/encryption-keys directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/extensible-templates directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/gemma directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/gemma-flex-template directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /dataflow/run-inference directory: [pytest](https://github.com/pytest-dev/pytest) and [transformers](https://github.com/huggingface/transformers).\nBumps the pip group with 1 update in the /dataflow/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datalabeling/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataproc/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datastore/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datastore/cloud-ndb directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow-cx directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /discoveryengine directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dlp/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /documentai/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/bookstore-grpc directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/bookstore-grpc-transcoding directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/getting-started-grpc directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /iap directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 2 updates in the /media_cdn directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /notebooks directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /servicedirectory directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagecontrol directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagetransfer directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /talent directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /tpu directory: [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `requests` from 2.32.2 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.2...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.2 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.2...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorr...\n\n_Description has been truncated_","html_url":"https://github.com/JohnDaWalka/python-docs-samples/pull/24","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnDaWalka%2Fpython-docs-samples/issues/24","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/24/packages"}},{"old_version":"2.6.3","new_version":"3.2.0","update_type":"major","path":null,"pr_created_at":"2026-04-13T23:48:49.000Z","version_change":"2.6.3 → 3.2.0","issue":{"uuid":"4258550652","node_id":"PR_kwDOO-I9t87SJkyK","number":15,"state":"open","title":"chore(deps): bump the pip group across 53 directories with 12 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T23:48:49.000Z","updated_at":"2026-04-13T23:48:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":12,"packages":[{"name":"pytest","old_version":"7.4.0","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"requests","old_version":"2.31.0","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"flask","old_version":"2.2.5","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"pyopenssl","old_version":"23.2.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"black","old_version":"23.1a1","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"cryptography","old_version":"40.0.2","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"google-cloud-aiplatform","old_version":"1.27.1","new_version":"1.133.0","repository_url":"https://github.com/googleapis/python-aiplatform"},{"name":"protobuf","old_version":"4.23.4","new_version":"5.29.6","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"apache-airflow","old_version":"2.6.3","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 2 updates in the /alloydb/notebooks directory: [pytest](https://github.com/pytest-dev/pytest) and [nbconvert](https://github.com/jupyter/nbconvert).\nBumps the pip group with 2 updates in the /aml-ai directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /asset/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/api-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/downscoping directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/service-to-service directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /automl/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /batch directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-connection/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-datatransfer/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-migration/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-reservation/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/bqml directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /bigquery/continuous-queries directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /bigquery/pandas-gbq-migration directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /billing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /blog/introduction_to_data_models_in_cloud_datastore directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cdn directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 4 updates in the /cloud-media-livestream/keypublisher directory: [pytest](https://github.com/pytest-dev/pytest), [requests](https://github.com/psf/requests), [flask](https://github.com/pallets/flask) and [pyopenssl](https://github.com/pyca/pyopenssl).\nBumps the pip group with 2 updates in the /cloud_scheduler/snippets directory: [pytest](https://github.com/pytest-dev/pytest) and [flask](https://github.com/pallets/flask).\nBumps the pip group with 2 updates in the /cloud_tasks/http_queues directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /cloud_tasks/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloudbuild/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 9 updates in the /composer/2022_airflow_summit directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [flask](https://github.com/pallets/flask) | `2.2.5` | `3.1.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) | `1.27.1` | `1.133.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `4.23.4` | `5.29.6` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 4 updates in the /composer/airflow_1_samples directory: [flask](https://github.com/pallets/flask), [pyopenssl](https://github.com/pyca/pyopenssl), [cryptography](https://github.com/pyca/cryptography) and [protobuf](https://github.com/protocolbuffers/protobuf).\nBumps the pip group with 9 updates in the /composer/cicd_sample directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [flask](https://github.com/pallets/flask) | `2.2.5` | `3.1.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) | `1.27.1` | `1.133.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `4.23.4` | `5.29.6` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 1 update in the /composer/functions directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /composer/rest directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /compute/api directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/auth directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 2 updates in the /compute/client_library directory: [pytest](https://github.com/pytest-dev/pytest) and [black](https://github.com/psf/black).\nBumps the pip group with 3 updates in the /compute/encryption directory: [pytest](https://github.com/pytest-dev/pytest), [requests](https://github.com/psf/requests) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /compute/load_balancing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/metadata directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 2 updates in the /compute/oslogin directory: [pytest](https://github.com/pytest-dev/pytest) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /contact-center-insights/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 4 updates in the /dataflow/gemma directory: [pytest](https://github.com/pytest-dev/pytest), [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform), [protobuf](https://github.com/protocolbuffers/protobuf) and [keras](https://github.com/keras-team/keras).\nBumps the pip group with 2 updates in the /dataflow/gemma-flex-template directory: [pytest](https://github.com/pytest-dev/pytest) and [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform).\nBumps the pip group with 3 updates in the /dataflow/run-inference directory: [pytest](https://github.com/pytest-dev/pytest), [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) and [transformers](https://github.com/huggingface/transformers).\nBumps the pip group with 2 updates in the /datastore/cloud-ndb directory: [pytest](https://github.com/pytest-dev/pytest) and [flask](https://github.com/pallets/flask).\nBumps the pip group with 2 updates in the /dialogflow directory: [pytest](https://github.com/pytest-dev/pytest) and [flask](https://github.com/pallets/flask).\nBumps the pip group with 2 updates in the /dialogflow-cx directory: [pytest](https://github.com/pytest-dev/pytest) and [flask](https://github.com/pallets/flask).\nBumps the pip group with 1 update in the /discoveryengine directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /gemma2 directory: [pytest](https://github.com/pytest-dev/pytest), [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) and [protobuf](https://github.com/protocolbuffers/protobuf).\nBumps the pip group with 4 updates in the /iap directory: [pytest](https://github.com/pytest-dev/pytest), [requests](https://github.com/psf/requests), [flask](https://github.com/pallets/flask) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 2 updates in the /media_cdn directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /notebooks directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /servicedirectory directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagecontrol directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagetransfer directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /talent directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /tpu directory: [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `pytest` from 8.3.3 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nbconvert` from 7.16.6 to 7.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyter/nbconvert/releases\"\u003enbconvert's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.17.0\u003c/h2\u003e\n\u003ch2\u003e7.17.0\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.16.6...c9ac1d1040459ed1ff9eb34e9918ce5a87cf9d71\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for arbitrary browser arguments \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2227\"\u003e#2227\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix QtPNGExporter returning empty bytes on macOS \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2264\"\u003e#2264\u003c/a\u003e (\u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVE-2025-53000: Secure Inkscape Windows path (registry first + block CWD) \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2261\"\u003e#2261\u003c/a\u003e (\u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/mberlanda\"\u003e\u003ccode\u003e@​mberlanda\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/salmankadaya\"\u003e\u003ccode\u003e@​salmankadaya\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/th3gowtham\"\u003e\u003ccode\u003e@​th3gowtham\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix get_export_names and get_exporter default args \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2228\"\u003e#2228\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePyPA-Compliant Summary \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2226\"\u003e#2226\u003c/a\u003e (\u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eavoid cov environment on free-threaded Pythons \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2267\"\u003e#2267\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate pre-commit, and fix all issues. \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2238\"\u003e#2238\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop test on 3.9, test on 3.13, 3.14, 3.14t \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2237\"\u003e#2237\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 2 updates \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2231\"\u003e#2231\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003e@flaky.flaky\u003c/code\u003e decorate with pytest marker \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2229\"\u003e#2229\u003c/a\u003e (\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate to mermaid 11.10.0 \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2224\"\u003e#2224\u003c/a\u003e (\u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8, fix the CI tests \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2221\"\u003e#2221\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\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\u003eUse \u003ccode\u003eintersphinx_registry\u003c/code\u003e \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2232\"\u003e#2232\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\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/nbconvert/graphs/contributors?from=2025-01-28\u0026amp;to=2026-01-29\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Abollwyvl+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3ACarreau+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ah3pdesign+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ahackowitz-af+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Akrassowski+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mberlanda\"\u003e\u003ccode\u003e@​mberlanda\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Amberlanda+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Amgorny+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Aminrk+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/MSeal\"\u003e\u003ccode\u003e@​MSeal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AMSeal+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AQuLogic+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/salmankadaya\"\u003e\u003ccode\u003e@​salmankadaya\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Asalmankadaya+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ashreve+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/th3gowtham\"\u003e\u003ccode\u003e@​th3gowtham\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ath3gowtham+updated%3A2025-01-28..2026-01-29\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/nbconvert/blob/main/CHANGELOG.md\"\u003enbconvert's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.17.0\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.16.6...c9ac1d1040459ed1ff9eb34e9918ce5a87cf9d71\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for arbitrary browser arguments \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2227\"\u003e#2227\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix QtPNGExporter returning empty bytes on macOS \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2264\"\u003e#2264\u003c/a\u003e (\u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVE-2025-53000: Secure Inkscape Windows path (registry first + block CWD) \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2261\"\u003e#2261\u003c/a\u003e (\u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/mberlanda\"\u003e\u003ccode\u003e@​mberlanda\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/salmankadaya\"\u003e\u003ccode\u003e@​salmankadaya\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/th3gowtham\"\u003e\u003ccode\u003e@​th3gowtham\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix get_export_names and get_exporter default args \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2228\"\u003e#2228\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePyPA-Compliant Summary \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2226\"\u003e#2226\u003c/a\u003e (\u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eavoid cov environment on free-threaded Pythons \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2267\"\u003e#2267\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate pre-commit, and fix all issues. \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2238\"\u003e#2238\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop test on 3.9, test on 3.13, 3.14, 3.14t \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2237\"\u003e#2237\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 2 updates \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2231\"\u003e#2231\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003e@flaky.flaky\u003c/code\u003e decorate with pytest marker \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2229\"\u003e#2229\u003c/a\u003e (\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate to mermaid 11.10.0 \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2224\"\u003e#2224\u003c/a\u003e (\u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8, fix the CI tests \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2221\"\u003e#2221\u003c/a\u003e (\u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\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\u003eUse \u003ccode\u003eintersphinx_registry\u003c/code\u003e \u003ca href=\"https://redirect.github.com/jupyter/nbconvert/pull/2232\"\u003e#2232\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\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/nbconvert/graphs/contributors?from=2025-01-28\u0026amp;to=2026-01-29\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Abollwyvl+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3ACarreau+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/h3pdesign\"\u003e\u003ccode\u003e@​h3pdesign\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ah3pdesign+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ahackowitz-af+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Akrassowski+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mberlanda\"\u003e\u003ccode\u003e@​mberlanda\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Amberlanda+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Amgorny+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Aminrk+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/MSeal\"\u003e\u003ccode\u003e@​MSeal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AMSeal+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3AQuLogic+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/salmankadaya\"\u003e\u003ccode\u003e@​salmankadaya\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Asalmankadaya+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/shreve\"\u003e\u003ccode\u003e@​shreve\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ashreve+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/th3gowtham\"\u003e\u003ccode\u003e@​th3gowtham\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnbconvert+involves%3Ath3gowtham+updated%3A2025-01-28..2026-01-29\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/21b35d85b46f5ff0956d3d088a52b9bef00e8196\"\u003e\u003ccode\u003e21b35d8\u003c/code\u003e\u003c/a\u003e Publish 7.17.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/c9ac1d1040459ed1ff9eb34e9918ce5a87cf9d71\"\u003e\u003ccode\u003ec9ac1d1\u003c/code\u003e\u003c/a\u003e Fix CVE-2025-53000: Secure Inkscape Windows path (registry first + block CWD)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/b13276d80ae6fadbfda981304810e26f421c4ced\"\u003e\u003ccode\u003eb13276d\u003c/code\u003e\u003c/a\u003e avoid cov environment on free-threaded Pythons (\u003ca href=\"https://redirect.github.com/jupyter/nbconvert/issues/2267\"\u003e#2267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/7c7055fe833fe9832e6f9a64fa5f67d66692c8d6\"\u003e\u003ccode\u003e7c7055f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/74f3ddd37ef4b7ffb5eee9acbf52062217c15852\"\u003e\u003ccode\u003e74f3ddd\u003c/code\u003e\u003c/a\u003e Fix QtPNGExporter returning empty bytes on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/216550b2aae4c329f4dab597a96ae7cac30de79a\"\u003e\u003ccode\u003e216550b\u003c/code\u003e\u003c/a\u003e fix links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/39777ac5716350e994171d025a7369c58b0afc8c\"\u003e\u003ccode\u003e39777ac\u003c/code\u003e\u003c/a\u003e try to comment fialing test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/7b591ca526f2598dbae3256a53765659c3edcf14\"\u003e\u003ccode\u003e7b591ca\u003c/code\u003e\u003c/a\u003e ruff-check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/6ec7638a3dc7a0bc2c533c116202d7f9b07ce9d9\"\u003e\u003ccode\u003e6ec7638\u003c/code\u003e\u003c/a\u003e parent\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/nbconvert/commit/59414b36f94e318d4207e8af863167047d936c19\"\u003e\u003ccode\u003e59414b3\u003c/code\u003e\u003c/a\u003e fix mypy\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jupyter/nbconvert/compare/v7.16.6...v7.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.4 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.3...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca ...\n\n_Description has been truncated_","html_url":"https://github.com/ASISBusiness/python-docs-samples/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ASISBusiness%2Fpython-docs-samples/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"}},{"old_version":"2.6.3","new_version":"3.2.0","update_type":"major","path":null,"pr_created_at":"2026-04-13T23:40:49.000Z","version_change":"2.6.3 → 3.2.0","issue":{"uuid":"4258521144","node_id":"PR_kwDOOK9uiM7SJer9","number":181,"state":"closed","title":"chore(deps): bump the pip group across 67 directories with 8 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-13T23:46:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T23:40:49.000Z","updated_at":"2026-04-13T23:46:54.000Z","time_to_close":363,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":8,"packages":[{"name":"requests","old_version":"2.31.0","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"pytest","old_version":"7.4.0","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pyopenssl","old_version":"23.2.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"black","old_version":"23.1a1","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"cryptography","old_version":"40.0.2","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"apache-airflow","old_version":"2.6.3","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 2 updates in the /aml-ai directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /appengine/standard/firebase/firenotes/backend directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /appengine/standard_python3/building-an-app/building-an-app-1 directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /asset/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/api-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/cloud-client-temp directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/custom-credentials/okta directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/downscoping directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/service-to-service directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /automl/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /batch directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-connection/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-datatransfer/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-migration/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-reservation/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/bqml directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /bigquery/continuous-queries directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/pandas-gbq-migration directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/pyarrow directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/quickstart directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery_storage/to_dataframe directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /billing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /blog/introduction_to_data_models_in_cloud_datastore directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cdn directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /cloud-media-livestream/keypublisher directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [pyopenssl](https://github.com/pyca/pyopenssl).\nBumps the pip group with 1 update in the /cloud_scheduler/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /cloud_tasks/http_queues directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloud_tasks/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloudbuild/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 6 updates in the /composer/2022_airflow_summit directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 2 updates in the /composer/airflow_1_samples directory: [pyopenssl](https://github.com/pyca/pyopenssl) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 6 updates in the /composer/cicd_sample directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 1 update in the /composer/functions directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /composer/rest directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 6 updates in the /composer/workflows directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.4` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `24.1.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `24.4.2` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `41.0.7` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.9.2` | `3.2.0` |\n\nBumps the pip group with 1 update in the /compute/api directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/auth directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/client_library directory: [pytest](https://github.com/pytest-dev/pytest) and [black](https://github.com/psf/black).\nBumps the pip group with 3 updates in the /compute/encryption directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /compute/load_balancing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/metadata directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/oslogin directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contact-center-insights/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /container/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /containeranalysis/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/gemma directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /dataflow/run-inference directory: [pytest](https://github.com/pytest-dev/pytest) and [transformers](https://github.com/huggingface/transformers).\nBumps the pip group with 1 update in the /datastore/samples/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow-cx directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /discoveryengine directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /genai/bounding_box directory: [pytest](https://github.com/pytest-dev/pytest) and [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 2 updates in the /genai/code_execution directory: [pytest](https://github.com/pytest-dev/pytest) and [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 2 updates in the /genai/image_generation directory: [pytest](https://github.com/pytest-dev/pytest) and [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 2 updates in the /genai/tools directory: [pytest](https://github.com/pytest-dev/pytest) and [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 3 updates in the /iap directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /logging/samples/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /media_cdn directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /notebooks directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /servicedirectory directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storage/samples/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagecontrol directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagetransfer directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /talent directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /tpu directory: [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `requests` from 2.32.4 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.27.1 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.2 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\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.2 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003cc...\n\n_Description has been truncated_","html_url":"https://github.com/Reality2byte/python-docs-samples/pull/181","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reality2byte%2Fpython-docs-samples/issues/181","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/181/packages"}},{"old_version":"2.6.3","new_version":"3.2.0","update_type":"major","path":null,"pr_created_at":"2026-04-13T23:35:02.000Z","version_change":"2.6.3 → 3.2.0","issue":{"uuid":"4258499144","node_id":"PR_kwDOO-I9t87SJaNc","number":14,"state":"open","title":"chore(deps): bump the pip group across 67 directories with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T23:35:02.000Z","updated_at":"2026-04-14T01:12:58.483Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":7,"packages":[{"name":"requests","old_version":"2.31.0","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"pytest","old_version":"7.4.0","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pyopenssl","old_version":"23.2.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"black","old_version":"23.1a1","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"cryptography","old_version":"40.0.2","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"apache-airflow","old_version":"2.6.3","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 2 updates in the /aml-ai directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /asset/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/api-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /auth/downscoping directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /auth/service-to-service directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /automl/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /batch directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-connection/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-datatransfer/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-migration/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery-reservation/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/bqml directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /bigquery/continuous-queries directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /bigquery/pandas-gbq-migration directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /billing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /blog/introduction_to_data_models_in_cloud_datastore directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cdn directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /cloud-media-livestream/keypublisher directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [pyopenssl](https://github.com/pyca/pyopenssl).\nBumps the pip group with 1 update in the /cloud_scheduler/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /cloud_tasks/http_queues directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloud_tasks/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /cloudbuild/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 6 updates in the /composer/2022_airflow_summit directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 2 updates in the /composer/airflow_1_samples directory: [pyopenssl](https://github.com/pyca/pyopenssl) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 6 updates in the /composer/cicd_sample directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.33.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `9.0.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `23.2.0` | `26.0.0` |\n| [black](https://github.com/psf/black) | `23.1a1` | `26.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `40.0.2` | `46.0.7` |\n| [apache-airflow](https://github.com/apache/airflow) | `2.6.3` | `3.2.0` |\n\nBumps the pip group with 1 update in the /composer/functions directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /composer/rest directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /compute/api directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/auth directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/client_library directory: [pytest](https://github.com/pytest-dev/pytest) and [black](https://github.com/psf/black).\nBumps the pip group with 3 updates in the /compute/encryption directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /compute/load_balancing directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/metadata directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /compute/oslogin directory: [requests](https://github.com/psf/requests) and [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contact-center-insights/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /container/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /containeranalysis/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /contentwarehouse/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/quickstart directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datacatalog/v1beta1 directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/encryption-keys directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/extensible-templates directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataflow/gemma directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 2 updates in the /dataflow/run-inference directory: [pytest](https://github.com/pytest-dev/pytest) and [transformers](https://github.com/huggingface/transformers).\nBumps the pip group with 1 update in the /dataflow/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datalabeling/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dataproc/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datastore/cloud-client directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /datastore/cloud-ndb directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dialogflow-cx directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /discoveryengine directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /dlp/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /documentai/snippets directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/bookstore-grpc directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/bookstore-grpc-transcoding directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /endpoints/getting-started-grpc directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 3 updates in the /iap directory: [requests](https://github.com/psf/requests), [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 2 updates in the /media_cdn directory: [pytest](https://github.com/pytest-dev/pytest) and [cryptography](https://github.com/pyca/cryptography).\nBumps the pip group with 1 update in the /notebooks directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /servicedirectory directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagecontrol directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /storagetransfer directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /talent directory: [pytest](https://github.com/pytest-dev/pytest).\nBumps the pip group with 1 update in the /tpu directory: [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `requests` from 2.32.4 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.4 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\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 an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.2.0 to 9.0.3\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.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\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/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\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/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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 compati...\n\n_Description has been truncated_","html_url":"https://github.com/ASISBusiness/python-docs-samples/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ASISBusiness%2Fpython-docs-samples/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"}},{"old_version":"3.1.8","new_version":"3.2.0","update_type":"minor","path":"/airflow","pr_created_at":"2026-04-10T21:38:59.000Z","version_change":"3.1.8 → 3.2.0","issue":{"uuid":"4241860736","node_id":"PR_kwDOOZbJW87Rk2bO","number":28,"state":"closed","title":"Bump apache-airflow from 3.1.8 to 3.2.0 in /airflow","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-10T23:00:48.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-10T21:38:59.000Z","updated_at":"2026-04-10T23:00:50.000Z","time_to_close":4909,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"3.1.8","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":"/airflow","ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 3.1.8 to 3.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/3.1.8...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=3.1.8\u0026new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/Peippo1/CampaignForge-AI/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/Peippo1/CampaignForge-AI/pull/28","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peippo1%2FCampaignForge-AI/issues/28","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/28/packages"}},{"old_version":"3.0.6","new_version":"3.2.0","update_type":"minor","path":"/tests/images/airflow/3.0.6","pr_created_at":"2026-04-10T19:35:21.000Z","version_change":"3.0.6 → 3.2.0","issue":{"uuid":"4241347433","node_id":"PR_kwDOK56Ncs7RjSoY","number":455,"state":"closed","title":"Bump apache-airflow from 3.0.6 to 3.2.0 in /tests/images/airflow/3.0.6","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-20T18:38:10.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-10T19:35:21.000Z","updated_at":"2026-04-20T18:38:19.000Z","time_to_close":860569,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"3.0.6","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":"/tests/images/airflow/3.0.6","ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 3.0.6 to 3.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/3.0.6...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=3.0.6\u0026new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/aws/amazon-mwaa-docker-images/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/aws/amazon-mwaa-docker-images/pull/455","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Famazon-mwaa-docker-images/issues/455","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/455/packages"}},{"old_version":"3.1.7","new_version":"3.2.0","update_type":"minor","path":"/Udemy/MLOps/Sources/mlops_project_final","pr_created_at":"2026-04-10T19:34:08.000Z","version_change":"3.1.7 → 3.2.0","issue":{"uuid":"4241340290","node_id":"PR_kwDOA372XM7RjRNB","number":52,"state":"closed","title":"Bump apache-airflow from 3.1.7 to 3.2.0 in /Udemy/MLOps/Sources/mlops_project_final","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-06T09:03:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-10T19:34:08.000Z","updated_at":"2026-05-06T09:03:46.000Z","time_to_close":2208576,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"3.1.7","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":"/Udemy/MLOps/Sources/mlops_project_final","ecosystem":"pip"},"body":"Bumps [apache-airflow](https://github.com/apache/airflow) from 3.1.7 to 3.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/3.1.7...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=3.1.7\u0026new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/AndersonPaschoalon/Online-Courses/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/AndersonPaschoalon/Online-Courses/pull/52","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndersonPaschoalon%2FOnline-Courses/issues/52","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/52/packages"}},{"old_version":"3.0.6","new_version":"3.2.0","update_type":"minor","path":"/performance in the pip group across 1 directory","pr_created_at":"2026-04-10T19:34:07.000Z","version_change":"3.0.6 → 3.2.0","issue":{"uuid":"4241340234","node_id":"PR_kwDOPrdRLs7RjRMV","number":6,"state":"closed","title":"Bump apache-airflow from 3.0.6 to 3.2.0 in /performance in the pip group across 1 directory","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-21T22:54:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-10T19:34:07.000Z","updated_at":"2026-04-21T22:54:48.000Z","time_to_close":962439,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"apache-airflow","old_version":"3.0.6","new_version":"3.2.0","repository_url":"https://github.com/apache/airflow"}],"path":"/performance in the pip group across 1 directory","ecosystem":"pip"},"body":"Bumps the pip group with 1 update in the /performance directory: [apache-airflow](https://github.com/apache/airflow).\n\nUpdates `apache-airflow` from 3.0.6 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/airflow/releases\"\u003eapache-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Airflow 3.2.0\u003c/h2\u003e\n\u003cp\u003e📦 PyPI: \u003ca href=\"https://pypi.org/project/apache-airflow/3.2.0/\"\u003ehttps://pypi.org/project/apache-airflow/3.2.0/\u003c/a\u003e\n📚 Docs: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/\u003c/a\u003e\n🛠 Release Notes: \u003ca href=\"https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\"\u003ehttps://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html\u003c/a\u003e\n🐳 Docker Image: \u0026quot;docker pull apache/airflow:3.2.0\u0026quot;\n🚏 Constraints: \u003ca href=\"https://github.com/apache/airflow/tree/constraints-3.2.0\"\u003ehttps://github.com/apache/airflow/tree/constraints-3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant Changes\u003c/h2\u003e\n\u003ch3\u003eAsset Partitioning\u003c/h3\u003e\n\u003cp\u003eThe headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware\nscheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream\nprocessing based on specific partitions of data. Only the relevant slice of data triggers downstream\nwork, making pipeline orchestration far more efficient and precise.\u003c/p\u003e\n\u003cp\u003eThis matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table\npartitions, BigQuery table partitions, or any other partitioned data store. Previously, any update\nto an asset triggered all downstream Dags regardless of which partition changed. Now only the right\nwork gets triggered at the right time.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/authoring-and-scheduling/assets\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eMulti-Team Deployments\u003c/h3\u003e\n\u003cp\u003eAirflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment.\nEach team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team.\u003c/p\u003e\n\u003cp\u003eThis is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access.\u003c/p\u003e\n\u003cp\u003eFor detailed usage instructions, see :doc:\u003ccode\u003e/core-concepts/multi-team\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eMulti-Team Deployments are experimental in 3.2.0 and may change in future versions based on\nuser feedback.\u003c/p\u003e\n\u003ch3\u003eSynchronous callback support for Deadline Alerts\u003c/h3\u003e\n\u003cp\u003eDeadline Alerts now support synchronous callbacks via \u003ccode\u003eSyncCallback\u003c/code\u003e in addition to the existing\nasynchronous \u003ccode\u003eAsyncCallback\u003c/code\u003e. Synchronous callbacks are executed by the executor (rather than\nthe triggerer), and can optionally target a specific executor via the \u003ccode\u003eexecutor\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eA Dag can also define multiple Deadline Alerts by passing a list to the \u003ccode\u003edeadline\u003c/code\u003e parameter,\nand each alert can use either callback type.\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003eDeadline Alerts are experimental in 3.2.0 and may change in future versions based on\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/apache/airflow/commit/3bc3ccfacc3dec9f359a3b153bfd4fc706c661ba\"\u003e\u003ccode\u003e3bc3ccf\u003c/code\u003e\u003c/a\u003e Update release notes for 3.2.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/531196158fcb6ac9456d2c6ba004ef93822a31f9\"\u003e\u003ccode\u003e5311961\u003c/code\u003e\u003c/a\u003e [v3-2-test] Guard against null trigger in asset watcher cleanup (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64659\"\u003e#64659\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64\"\u003e#64\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/3840fae2e16ecbd86fda948607a5822a7c506703\"\u003e\u003ccode\u003e3840fae\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix ObjectStoragePath NoCredentialsError when using conn_id with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/959ebd83c1335cc3352355ab7e02ff00813120eb\"\u003e\u003ccode\u003e959ebd8\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix double-serialization issue by unwrapping serialized kwargs in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/d1d2416310513bdf02382381b5dd55275b45ccdb\"\u003e\u003ccode\u003ed1d2416\u003c/code\u003e\u003c/a\u003e [v3-2-test] Run DB check only for core components in prod entrypoint (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/63413\"\u003e#63413\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/beee8b693c04e11b63e132ef862b4018fdb03a0d\"\u003e\u003ccode\u003ebeee8b6\u003c/code\u003e\u003c/a\u003e [v3-2-test] Remove false-positive RFC3986 underscore warning from Connection....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/68d98747872d999929c2bff5f4df97489d921405\"\u003e\u003ccode\u003e68d9874\u003c/code\u003e\u003c/a\u003e [v3-2-test] fix: restore early return in check_for_write_conflict (\u003ca href=\"https://redirect.github.com/apache/airflow/issues/64062\"\u003e#64062\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/0a000c486d30f533ca45a9df9fdafed73468e53d\"\u003e\u003ccode\u003e0a000c4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix deferred task resume failure when worker is older than server...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/8d0fb4b34d1253928a671f90c46a5560bf5f2cb0\"\u003e\u003ccode\u003e8d0fb4b\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix serde deserialization of old-format builtin types in trigger ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/airflow/commit/e64b7e41d72e5bad9ff7d90b8d10797f0a9a0756\"\u003e\u003ccode\u003ee64b7e4\u003c/code\u003e\u003c/a\u003e [v3-2-test] Fix: Restore live stdout logging for Elasticsearch log forwarding...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/airflow/compare/3.0.6...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=apache-airflow\u0026package-manager=pip\u0026previous-version=3.0.6\u0026new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/dporkka/airflow/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/dporkka/airflow/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dporkka%2Fairflow/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}}]}