You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ep...@apache.org on 2023/03/08 14:44:31 UTC

[airflow] 16/20: Do not crash when a version fails to parse (#29685)

This is an automated email from the ASF dual-hosted git repository.

ephraimanierobi pushed a commit to branch v2-5-test
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit 99b1cc6707005f9639a22ade23ad4312954a8be2
Author: Tzu-ping Chung <ur...@gmail.com>
AuthorDate: Wed Feb 22 20:13:08 2023 +0800

    Do not crash when a version fails to parse (#29685)
    
    Old files on PyPI may contain version numbers that are non-standard and
    can't be properly parsed. Those are no longer allowed for new versions,
    so we can safely ignore those versions since they must be ancient.
    
    (cherry picked from commit 8430d6014aef801ddea3c7f2eb56b76a8d291b8c)
---
 dev/breeze/src/airflow_breeze/utils/find_newer_dependencies.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/dev/breeze/src/airflow_breeze/utils/find_newer_dependencies.py b/dev/breeze/src/airflow_breeze/utils/find_newer_dependencies.py
index ecedb8b35f..fb4079548f 100644
--- a/dev/breeze/src/airflow_breeze/utils/find_newer_dependencies.py
+++ b/dev/breeze/src/airflow_breeze/utils/find_newer_dependencies.py
@@ -109,7 +109,10 @@ def get_releases_and_upload_times(package, min_date, current_version, tz) -> lis
     releases: list[tuple[Any, Any]] = []
     for release_version, release_info in package_info["releases"].items():
         if release_info and not release_info[0]["yanked"]:
-            parsed_version = version.parse(release_version)
+            try:
+                parsed_version = version.parse(release_version)
+            except version.InvalidVersion:
+                continue
             if (
                 parsed_version.is_prerelease
                 or parsed_version.is_devrelease