Supported Python Versions
The versions of Python supported by Mercurial.
1. Current support
Mercurial 4.3 and newer require Python 2.7. Mercurial versions up to 4.2 support Python versions 2.6 to 2.7, provided they include the following standard library components:
- bz2 (needed for bundles)
- ctypes (only on Windows)
Mercurial 3.5 dropped support for Python 2.4 and 2.5. As our primary users of these Python versions are enterprise Linux users of RHEL 5 and Centos 5, we've started packaging RPMs for these systems with a private copy of a recent Python.
Mercurial 4.3 dropped support for Python 2.6. As work towards porting to Python 3 progressed, continuing to support Python 2.6 was a hindrance to porting efforts.
Some versions of Python may have difficulty with some particular features. For instance, Python before 2.5 cannot properly verify SSL certificates.
2. Future support plan
Python 2.3 support was dropped in July 2009 for Mercurial 1.3 when it became difficult for developers to continue testing compatibility. Now that we have a 2.4 buildbot, this is mostly a non-issue.
Python 2.4 and 2.5 support was dropped in May 2015 for Mercurial 3.5 as it was becoming a barrier to Python 3.x support.
We will continue to support Python 2.7 for the foreseeable future.
3. Python 3.x support
Python 3.x has no relation to Windows Unicode filename support, see EncodingStrategy.
Mercurial is actively being ported to Python 3. As of Mercurial 4.3, some commands work on Python 3. However, Python 3 is not yet a supported platform.
Mercurial will never support Python 3.0 to 3.4 because of missing support for the % operator on bytestrings (bytes in Python 3).