From 3dc64050b5a37d422af55dc6cbcfd7e079eb5af5 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Tue, 22 Sep 2026 06:48:01 +0200 Subject: [PATCH] cmds.projects.CmdRequiredOsPkg: Sort output The list of OS packages printed by required-os-pkg is not reproducible: the packages are collected in a set, and the set's iteration order depends on the hash seed of the Python process, so two runs of the same invocation can print the same packages in different orders. Print the sorted list instead. The order of a package list is meaningless to the package manager, and the output is now stable across runs and hash seeds. Signed-off-by: Jan Lindemann Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v0.86.1 --- src/python/jw/pkg/cmds/projects/CmdRequiredOsPkg.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/python/jw/pkg/cmds/projects/CmdRequiredOsPkg.py b/src/python/jw/pkg/cmds/projects/CmdRequiredOsPkg.py index 329b941f..c19ebb47 100644 --- a/src/python/jw/pkg/cmds/projects/CmdRequiredOsPkg.py +++ b/src/python/jw/pkg/cmds/projects/CmdRequiredOsPkg.py @@ -66,6 +66,7 @@ class CmdRequiredOsPkg(Cmd): # export vals = self.app.get_values(deps, ['pkg.requires.' + sec], [flavour]) if vals: requires |= set(vals) - out = [f'"{dep}"' for dep in requires] if args.quote else requires + out = sorted(requires) + out = [f'"{dep}"' for dep in out] if args.quote else out # TODO: add all not in build tree as -devel print(' '.join(out))