From 4c8cd952c9c196f38bca2784d267e8c7d8a86d7d Mon Sep 17 00:00:00 2001
From: Andre Anjos <andre.dos.anjos@gmail.com>
Date: Mon, 8 Apr 2024 10:30:29 +0200
Subject: [PATCH] [update_pins] Sort package lists before saving to file

---
 src/idiap_devtools/scripts/update_pins.py | 11 ++++++++---
 src/idiap_devtools/update_pins.py         |  4 ++++
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/idiap_devtools/scripts/update_pins.py b/src/idiap_devtools/scripts/update_pins.py
index 94a4669..a8e02ad 100644
--- a/src/idiap_devtools/scripts/update_pins.py
+++ b/src/idiap_devtools/scripts/update_pins.py
@@ -163,9 +163,10 @@ def update_pins(manual_pins, profile, python, only_pip, **_) -> None:
             resolved_packages.append((name, version))
 
     # we only monitor a subset of packages
-    resolved_packages = [
-        (p, v) for (p, v) in resolved_packages if p in packages
-    ]
+    resolved_packages = sorted(
+        [(p, v) for (p, v) in resolved_packages if p in packages],
+        key=lambda x: (x[0], len(x[0])),
+    )
 
     # write the new pinning
     click.secho(
@@ -216,6 +217,10 @@ package_names_map:
         python_packages = filter_python_packages(
             resolved_packages, conda_to_python
         )
+        python_packages = sorted(
+            [(p, v) for (p, v) in python_packages],
+            key=lambda x: (x[0], len(x[0])),
+        )
         click.secho(
             f"Saving {len(python_packages)} entries to "
             f"`{pip_constraints_path}'...",
diff --git a/src/idiap_devtools/update_pins.py b/src/idiap_devtools/update_pins.py
index f5ea2cf..c078b26 100644
--- a/src/idiap_devtools/update_pins.py
+++ b/src/idiap_devtools/update_pins.py
@@ -114,6 +114,10 @@ def update_pip_constraints_only(
 
     with pip_constraints_path.open("wt") as f:
         python_packages = filter_python_packages(package_pairs, conda_to_python)
+        python_packages = sorted(
+            [(p, v) for (p, v) in python_packages],
+            key=lambda x: (x[0], len(x[0])),
+        )
         click.echo(
             f"Saving {len(python_packages)} entries to "
             f"`{pip_constraints_path}'..."
-- 
GitLab