Source: python-doit Version: 0.28.0-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org
Hi, While working on the "reproducible builds" effort [1], we have noticed that python-doit generates Bash and Zsh completion output with non- determistic ordering. The attached patch removes this randomness from the output. Once applied, packages using python-doit (eg. nikola) can be built reproducibly in our reproducible toolchain. [1]: https://wiki.debian.org/ReproducibleBuilds Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `-
diff --git a/doit/cmd_completion.py b/doit/cmd_completion.py index e960eef..ad62a6e 100644 --- a/doit/cmd_completion.py +++ b/doit/cmd_completion.py @@ -101,7 +101,7 @@ class TabCompletion(DoitCmdBase): self.task_list, _ = self.loader.load_tasks( self, opt_values, pos_args) tmpl_vars['pt_tasks'] = '"{0}"'.format( - ' '.join(t.name for t in self.task_list if not t.is_subtask)) + ' '.join(sorted(t.name for t in self.task_list if not t.is_subtask)) else: tmpl_list_cmd = "$({0} list {1} --quiet 2>/dev/null)" tmpl_vars['pt_tasks'] = tmpl_list_cmd.format(pt_bin_name, @@ -196,7 +196,7 @@ class TabCompletion(DoitCmdBase): for task in self.task_list: if not task.is_subtask: lines.append("'{0}: {1}'".format(task.name, task.doc)) - template_vars['pt_tasks'] = '(\n{0}\n)'.format('\n'.join(lines)) + template_vars['pt_tasks'] = '(\n{0}\n)'.format('\n'.join(sorted(lines))) else: tmp_tasks = Template( '''("${(f)$($pt_bin_name list --template '{name}: {doc}')}")''')
_______________________________________________ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds