# HG changeset patch # User zegervdv # Date 1706892289 -3600 # Node ID f3e87577dd3aff7df8d9716e375de1999b6d57e3 # Parent 053b735696ba846a580858a376233e70a9e4f717 fix: sort keys from template dicts to determistically generate scripts From http://masterminds.github.io/sprig/dicts.html > The keys function will return a list of all of the keys in one or more dict types. > Since a dictionary is unordered, the keys will not be in a predictable order. > They can be sorted with sortAlpha. This results in a different ordering of commands in the generated scripts which break the hashing in chezmoi to determine whether the scripts needs to be re-run. diff -r 053b735696ba -r f3e87577dd3a .chezmoiscripts/run_onchange_after_22-install-devtools.sh.tmpl --- a/.chezmoiscripts/run_onchange_after_22-install-devtools.sh.tmpl Fri Feb 02 17:44:25 2024 +0100 +++ b/.chezmoiscripts/run_onchange_after_22-install-devtools.sh.tmpl Fri Feb 02 17:44:49 2024 +0100 @@ -17,7 +17,7 @@ mkdir -p $DOWNLOAD_DIR pushd $DOWNLOAD_DIR -{{ range keys $packages }} +{{ range keys $packages | sortAlpha }} {{ $meta := get $packages . -}} VERSION={{ get $meta "version" }} echo "Downloading {{ . }} v{{ get $meta "version" }} ..." diff -r 053b735696ba -r f3e87577dd3a .chezmoiscripts/run_onchange_after_41-install-language-servers.sh.tmpl --- a/.chezmoiscripts/run_onchange_after_41-install-language-servers.sh.tmpl Fri Feb 02 17:44:25 2024 +0100 +++ b/.chezmoiscripts/run_onchange_after_41-install-language-servers.sh.tmpl Fri Feb 02 17:44:49 2024 +0100 @@ -12,7 +12,7 @@ curl -fsSL https://github.com/tamasfe/taplo/releases/download/{{ $taplo_version }}/taplo-full-linux-x86_64.gz | gzip -d - | sudo install -m 755 /dev/stdin /usr/local/bin/taplo -{{ range keys $pipx_pkgs }} +{{ range keys $pipx_pkgs | sortAlpha }} pipx install --force "{{ . }}=={{ get $pipx_pkgs . }}" {{ end }}