• Jason Madden's avatar
    Sort distributions when computing a signature. (#393) · 47bbc3c4
    Jason Madden authored
    This fixes #392.
    
    Previously under Python 3 (probably prior to 3.6, when dicts became
    ordered by default) or under Python 2 with ``-R`` or
    ``PYTHONHASHSEED=random`` the results were undefined because dict
    iteration order is undefined.
    
    The value being sorted is complex and defined by
    pkg_resources.Distribution:
    
    ```    @property
        def hashcmp(self):
            return (
                self.parsed_version,
                self.precedence,
                self.key,
                _remove_md5_fragment(self.location),
                self.py_version or '',
                self.platform or '',
            )
    
        def __hash__(self):
            return hash(self.hashcmp)
    
        def __lt__(self, other):
            return self.hashcmp < other.hashcmp
    ...
    ```
    47bbc3c4
buildout.py 77.2 KB