Mercurial > hg
comparison setup.py @ 39572:b6b9488aae4c
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
author | Pulkit Goyal <pulkit@yandex-team.ru> |
---|---|
date | Wed, 05 Sep 2018 01:18:29 +0530 |
parents | 729082bb9938 |
children | ec68135a8935 |
comparison
equal
deleted
inserted
replaced
39571:8f2c0d1b454c | 39572:b6b9488aae4c |
---|---|
9 supportedpy = '~= 2.7' | 9 supportedpy = '~= 2.7' |
10 if os.environ.get('HGALLOWPYTHON3', ''): | 10 if os.environ.get('HGALLOWPYTHON3', ''): |
11 # Mercurial will never work on Python 3 before 3.5 due to a lack | 11 # Mercurial will never work on Python 3 before 3.5 due to a lack |
12 # of % formatting on bytestrings, and can't work on 3.6.0 or 3.6.1 | 12 # of % formatting on bytestrings, and can't work on 3.6.0 or 3.6.1 |
13 # due to a bug in % formatting in bytestrings. | 13 # due to a bug in % formatting in bytestrings. |
14 # We cannot support Python 3.5.0, 3.5.1, 3.5.2 because of bug in | |
15 # codecs.escape_encode() where it raises SystemError on empty bytestring | |
16 # bug link: https://bugs.python.org/issue25270 | |
14 # | 17 # |
15 # TODO: when we actually work on Python 3, use this string as the | 18 # TODO: when we actually work on Python 3, use this string as the |
16 # actual supportedpy string. | 19 # actual supportedpy string. |
17 supportedpy = ','.join([ | 20 supportedpy = ','.join([ |
18 '>=2.7', | 21 '>=2.7', |
19 '!=3.0.*', | 22 '!=3.0.*', |
20 '!=3.1.*', | 23 '!=3.1.*', |
21 '!=3.2.*', | 24 '!=3.2.*', |
22 '!=3.3.*', | 25 '!=3.3.*', |
23 '!=3.4.*', | 26 '!=3.4.*', |
27 '!=3.5.0', | |
28 '!=3.5.1', | |
29 '!=3.5.2', | |
24 '!=3.6.0', | 30 '!=3.6.0', |
25 '!=3.6.1', | 31 '!=3.6.1', |
26 ]) | 32 ]) |
27 | 33 |
28 import sys, platform | 34 import sys, platform |