Supported Python Versions

The versions of Python supported by Mercurial.

1. Current support

Mercurial 5.2 and newer has support for Python 3.5 and newer. Mercurial 4.3 and newer require at least Python 2.7. Python must include the following standard library components:


/!\ Edit conflict - other version:



/!\ Edit conflict - your version:



/!\ End of edit conflict


2. Past support

Python 2.6 support was dropped in Mercurial 4.3. As work towards porting to Python 3 progressed, continuing to support Python 2.6 was a hindrance to porting efforts.

Python 2.4 and 2.5 support was dropped in Mercurial 3.5 as it was becoming a barrier to Python 3.x support. 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.

Python 2.3 support was dropped in Mercurial 1.3.

Some versions of Python may have difficulty with some particular features. For instance, Python before 2.5 cannot properly verify SSL certificates.


/!\ Edit conflict - other version:


3. 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 may drop support for Python 2.7 sometime in 2020. See Python3 for more information.

4. Python 3.x support

Mercurial 5.2 and newer has support for Python 3.5 and newer.

Mercurial will never support Python 3.0 to 3.4 because of missing support for the % operator on bytestrings (bytes in Python 3).



/!\ Edit conflict - your version:


Mercurial never supported Python 3.0 to 3.4 because of missing support for the % operator on bytestrings (bytes in Python 3).

5. Future support plan

We may drop support for Python 2.7 sometime in 2020. See Python3 for more information.



/!\ End of edit conflict