# HG changeset patch # User Gregory Szorc # Date 1555862221 25200 # Node ID cd1bede340b0e0c6fdb19b4990c75b34e5f42cc3 # Parent bd92dd3eff42384f5c519c58d0f45b392fb52132 setup: tweak error message for Python 3 We now have beta support for Python 3. In my opinion, it isn't yet stable enough to allow `pip install Mercurial` to work with Python 3 out of the box: we don't want people accidentally using Mercurial with Python 3 just yet. But I do think we should be more friendly about informing people of their options. This commit tweaks the error message that users see when running setup.py with Python 3. We instruct them about the current level of Python 3 support, point them at the wiki for more info, and give them instructions on how to bypass the check. As part of this, I also changed which version value is printed, as we were printing a named tuple before. diff -r bd92dd3eff42 -r cd1bede340b0 setup.py --- a/setup.py Sun Apr 21 07:21:08 2019 -0700 +++ b/setup.py Sun Apr 21 08:57:01 2019 -0700 @@ -85,10 +85,21 @@ if badpython: error = """ -Mercurial only supports Python 2.7. Python {py} detected. -Please re-run with Python 2.7. -""".format(py=sys.version_info) + +Mercurial currently has beta support for Python 3 and use of Python 2.7 is +recommended for the best experience. + +Please re-run with Python 2.7 for a faster, less buggy experience. + +If you would like to beta test Mercurial with Python 3, this error can +be suppressed by defining the HGPYTHON3 environment variable when invoking +this command. No special environment variables or configuration changes are +necessary to run `hg` with Python 3. + +See https://www.mercurial-scm.org/wiki/Python3 for more on Mercurial's +Python 3 support. +""".format(py='.'.join('%d' % x for x in sys.version_info[0:2])) printf(error, file=sys.stderr) sys.exit(1)