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

Reply via email to