Your message dated Mon, 13 Jun 2016 18:20:14 +0000
with message-id <[email protected]>
and subject line Bug#825968: fixed in epydoc 3.0.1+dfsg-13
has caused the Debian Bug report #825968,
regarding epydoc: nondeterminism caused by list and file ordering
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
825968: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=825968
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: epydoc
Version: 3.0.1+dfsg-12
Severity: wishlist
Tags: patch
User: [email protected]
Usertags: randomness fileordering

Dear Maintainer,

while working on the “reproducible builds” effort [1], we have noticed
that documentation written by epydoc list several items in an order that varies
across builds.

Tha attached patch makes sure that subclass lists are traversed in a sorted
fashion, as well as that input files are processed in a deterministic way.

Once applied, more packages using epydoc, e.g. python-csb [2], can be built
reproducibly in our current experimental framework.

Please note that there are also a few more packages [3] that may be affected by 
other,
more specific issues. It is likely that additional patches will follow.

Many thanks,
Sascha Steinbiss

[1] https://wiki.debian.org/ReproducibleBuilds
[2] https://tests.reproducible-builds.org/rb-pkg/unstable/amd64/python-csb.html
[3] https://tests.reproducible-builds.org/issues/unstable/use_epydoc_issue.html
Description: make subclass traversal and input file handling deterministic
Author: Sascha Steinbiss <[email protected]>
--- a/epydoc/docbuilder.py
+++ b/epydoc/docbuilder.py
@@ -574,7 +574,7 @@
     subpackage_dirs = set()
     for subdir in pkg_path:
         if os.path.isdir(subdir):
-            for name in os.listdir(subdir):
+            for name in sorted(os.listdir(subdir)):
                 filename = os.path.join(subdir, name)
                 # Is it a valid module filename?
                 if is_module_file(filename):
@@ -660,7 +660,7 @@
         num_items = 0
         
         if is_package_dir(package_dir):
-            for name in os.listdir(package_dir):
+            for name in sorted(os.listdir(package_dir)):
                 filename = os.path.join(package_dir, name)
                 if is_module_file(filename):
                     num_items += 1
--- a/epydoc/docwriter/html.py
+++ b/epydoc/docwriter/html.py
@@ -879,7 +879,8 @@
                     len(doc.subclasses) > 0):
                     out('<dl><dt>Known Subclasses:</dt>\n<dd>\n    ')
                     out('  <ul class="subclass-list">\n')
-                    for i, subclass in enumerate(doc.subclasses):
+                    sort_key = lambda c:tuple(reversed(c.canonical_name))
+                    for i, subclass in enumerate(sorted(set(doc.subclasses), key=sort_key)):
                         href = self.href(subclass, context=doc)
                         if self._val_is_public(subclass): css = ''
                         else: css = ' class="private"'

--- End Message ---
--- Begin Message ---
Source: epydoc
Source-Version: 3.0.1+dfsg-13

We believe that the bug you reported is fixed in the latest version of
epydoc, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Kenneth J. Pronovici <[email protected]> (supplier of updated epydoc package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Mon, 13 Jun 2016 11:29:34 -0500
Source: epydoc
Binary: python-epydoc epydoc-doc
Architecture: source all
Version: 3.0.1+dfsg-13
Distribution: unstable
Urgency: medium
Maintainer: Kenneth J. Pronovici <[email protected]>
Changed-By: Kenneth J. Pronovici <[email protected]>
Description:
 epydoc-doc - tool for documenting Python modules (documentation)
 python-epydoc - tool for documenting Python modules
Closes: 825968
Changes:
 epydoc (3.0.1+dfsg-13) unstable; urgency=medium
 .
   * Bump standards version to 3.9.8.0 (no packaging changes).
   * Add new patch manpage-types.patch.
     - This patch fixes several misspellings discovered by Lintian.
   * Add new patch deterministic-sort-2.patch (closes: #825968).
     - This is a request from the Reproducible Builds project
     - This patch makes several more types of ordering deterministic
   * Change X-Python-Version from 2.1 to 2.4 in debian/control.
     - This is necessary to support deterministic-sort-2.patch
     - Practically, there is no effect, since Debian only has Python 2.7
Checksums-Sha1:
 3a212d872d7eb47379ce5bb92dd7fddab5933fd3 1852 epydoc_3.0.1+dfsg-13.dsc
 ebb8ffd3dde39d6346e7118b8f82ffcf35db264d 34152 
epydoc_3.0.1+dfsg-13.debian.tar.xz
 a0030e63bc6f8b994fc30572b263d0a9f719210f 882940 
epydoc-doc_3.0.1+dfsg-13_all.deb
 5a68f450cc27ff4f3bb9f10aae24cf9dbbe1c5c0 219876 
python-epydoc_3.0.1+dfsg-13_all.deb
Checksums-Sha256:
 a320919a98159713424872a73a1662c0f23c5206370f142f97c8b07e3a7bc78c 1852 
epydoc_3.0.1+dfsg-13.dsc
 6e4167b6f760312647aeb5522912f56fbf84a1515c8b6ffc2ed07fe8c52af348 34152 
epydoc_3.0.1+dfsg-13.debian.tar.xz
 ea167f1f99d26b6f154af62dfe1e08af5e0e2ebc16389ed4fbe2538bbdb683fc 882940 
epydoc-doc_3.0.1+dfsg-13_all.deb
 57918e3c50a716704bc43be000256fbacda717c4897856af51d5d0eb6965af81 219876 
python-epydoc_3.0.1+dfsg-13_all.deb
Files:
 4430be033c6932d4ae42bdfcc9e8389d 1852 python optional epydoc_3.0.1+dfsg-13.dsc
 406dc827c9bb68e65f6598229832fa64 34152 python optional 
epydoc_3.0.1+dfsg-13.debian.tar.xz
 6370611e0593ad78c7e89f245834d954 882940 doc optional 
epydoc-doc_3.0.1+dfsg-13_all.deb
 bc6d2c7776dd27bec7b19390587d2926 219876 python optional 
python-epydoc_3.0.1+dfsg-13_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXXuNWAAoJEBEZKJLv11k0pOMP/0SWWefZDA0Kha99J57YOYvU
gOWsSDYC+Cbs1UECeu6/LF3C1nCXvSUs2WYqyVQDZoBjSbUyEetonQrA//ShAUUs
0u4R69Ae86fWm9yMGPGYOeKhh90dLYVHNn6EkxFIWu7lwkmtTUgnAmtyAR9dZoD/
xjBOnweaUpKA8w7QMdmauKVSpXkkphfDsy3yF/zE/T0EESHQQaSplS1gAjfjyfn6
3OceQX5e+UsG0+vhIrGgvINimewYVJZTg2LbUxEwxPcdqXs0Q3DciaIR8PVsL4gz
eQV0i6B73pC+VfYulAqJmooiNgJOkaP8IChkF7zGiHU7q9uZpa2lg4iHHgSWnYo4
Hm62/3HFPYM4aYIybtcG/Eoa1R3saitZIc3h1xYWasVG5ADQMzv14Zgbjyjg8V5s
oSKn7i0jGokV8s3ivOxYqSr6wdhopZ2IMiJpRG5XFHAW6h98hyt+euEQD0TaswNM
J1E2+rHVZAhBkqjq+dFG4EVT96xsX4R7uLnXjr/+jV0r38rUorksjpsFb/fKpUbR
Pb0gmF8Jf0MHNfXQkLEigpVz8iqjS+fFlLAcCP1//S/4GOD1u8UzJu9KytmTLPqp
wQSljimci+zyB9KlIyG3U/QzonN3c6I5Jt09ymR5Wf1aq5eIEazHRcjRU75aqkK3
Qk+rG4tIVaSF+2+DI3sZ
=aUmT
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to