From 2a1c46ba5f8b428d485c389162adc397b918efd2 Mon Sep 17 00:00:00 2001 From: Momchil Velikov Date: Fri, 15 May 2026 12:03:35 +0100 Subject: [PATCH] Fix version check for `tabulate` package The lexicographical comparison of version strings incorrect, such as "0.8.10" being considered less than "0.8.6". Use `packaging.version.Version` to compare versions correctly. --- tools/docker/Dockerfile | 1 + tools/gen-intrinsics-specs.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index 1a0c261c..8e355d63 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -20,6 +20,7 @@ RUN apt-get update \ inkscape \ python3 \ python3-tabulate \ + python3-packaging \ librsvg2-bin \ && rm -rf /var/lib/apt/lists/* diff --git a/tools/gen-intrinsics-specs.py b/tools/gen-intrinsics-specs.py index 3997b98c..a43dad95 100755 --- a/tools/gen-intrinsics-specs.py +++ b/tools/gen-intrinsics-specs.py @@ -22,6 +22,7 @@ import doctest from urllib.parse import urljoin from urllib.parse import quote +from packaging.version import Version def quote_literal(val, workflow): if len(val) > 0: @@ -955,7 +956,7 @@ def get_intrinsics_db(path): # We require version 0.8.6 to be able to print multi-line records # in tables. - if tbl.__version__ < "0.8.6": + if Version(tbl.__version__) < Version("0.8.6"): print(f"Your version of package tabulate is too old ({tbl.__version__}). " "Update it to be greater or equal to 0.8.6.", file=sys.stderr) exit(1)