lib.Distro: Fix os-release and cascade macros #104
Loading…
Reference in a new issue
No description provided.
Delete branch "jan/fix/20260914-lib-distro-fix-os-release-and-cascade-macros"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
lib.Distro: Fix os-release and cascade macros
expand_macros() looks up each %{name} via getattr with '-' turned into '_', but macro_names advertises two names that don't resolve: 'os-release' has no corresponding attribute, and 'os-cascade' resolves to the list property os_cascade, which str.replace() rejects. Both macros are listed in the platform info help output, yet always fail when used in a format string.
The space-joined cascade string is the cascade property, and 'cascade' is the macro name the make recipes and scripts already use, together with the --format default in cmds/platform/CmdInfo.py.
Before the App.distro_* properties moved to Distro, the advertised macro names were derived from the distro_* attribute names, so the advertised macro was %{cascade}; the hand-written macro_names replaced it with the list attribute's name.
expand_macros() looks up each %{name} via getattr with '-' turned into '_', but macro_names advertises two names that don't resolve: 'os-release' has no corresponding attribute, and 'os-cascade' resolves to the list property os_cascade, which str.replace() rejects. Both macros are listed in the platform info help output, yet always fail when used in a format string. The space-joined cascade string is the cascade property, and 'cascade' is the macro name the make recipes and scripts already use, together with the --format default in cmds/platform/CmdInfo.py. Before the App.distro_* properties moved to Distro, the advertised macro names were derived from the distro_* attribute names, so the advertised macro was %{cascade}; the hand-written macro_names replaced it with the list attribute's name. - Add the missing os_release attribute as an alias of os_release_str - Advertise the 'cascade' macro in macro_names instead of 'os-cascade', leaving os_cascade as the purely programmatic list - Update the platform info help expected output accordingly - Add unit tests for the os-release field parsers, the derived properties, and the expansion of every advertised macro Signed-off-by: Jan Lindemann <jan@janware.com> Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v0.85.1