# HG changeset patch # User Pulkit Goyal # Date 1536090509 -19800 # Node ID b6b9488aae4c05d2ee337cf2ee5eecd3bc07acb4 # Parent 8f2c0d1b454c90800d7de5517fde3e2fad2631cd setup: don't support py 3.5.0, 3.5.1, 3.5.2 because of bug in codecs codecs.escape_encode() raises SystemError if an empty bytestring is passed. We do that at some places in our code and because of this bug, things break. Therefore we can't support the mentioned version. The bug was fixed in 3.5.3, 3.6.0 beta 2. We can't support 3.6.0 anyway because of bug in formatting bytestrings. Link to the python bug: https://bugs.python.org/issue25270 Differential Revision: https://phab.mercurial-scm.org/D4475 diff -r 8f2c0d1b454c -r b6b9488aae4c setup.py --- a/setup.py Fri Sep 07 10:18:20 2018 -0700 +++ b/setup.py Wed Sep 05 01:18:29 2018 +0530 @@ -11,6 +11,9 @@ # Mercurial will never work on Python 3 before 3.5 due to a lack # of % formatting on bytestrings, and can't work on 3.6.0 or 3.6.1 # due to a bug in % formatting in bytestrings. + # We cannot support Python 3.5.0, 3.5.1, 3.5.2 because of bug in + # codecs.escape_encode() where it raises SystemError on empty bytestring + # bug link: https://bugs.python.org/issue25270 # # TODO: when we actually work on Python 3, use this string as the # actual supportedpy string. @@ -21,6 +24,9 @@ '!=3.2.*', '!=3.3.*', '!=3.4.*', + '!=3.5.0', + '!=3.5.1', + '!=3.5.2', '!=3.6.0', '!=3.6.1', ])