Differences between revisions 18 and 23 (spanning 5 versions)
Revision 18 as of 2020-06-05 21:53:54
Size: 1686
Editor: ManuelJacob
Comment: Drop note that is more likely to confuse users than to help them.
Revision 23 as of 2022-03-04 01:04:18
Size: 1554
Editor: GregorySzorc
Comment: update state on Python 3.5
Deletions are marked like this. Additions are marked like this.
Line 9: Line 9:
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: Mercurial 6.2 (to be released) and newer only has support for Python 3.6+. Mercurial 5.2 and newer has support for Python 2.7 and Python 3.5 and newer. Mercurial 4.3 and newer require at least Python 2.7. Python must include the following standard library components:
Line 13: Line 13:
 * ssl
Line 16: Line 17:
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. == Past support ==
Line 18: Line 19:
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. Python 3.5 support is being dropped in Mercurial 6.2.
Python 2 support is being dropped in Mercurial 6.2.

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.
Line 22: Line 30:
Mercurial never supported Python 3.0 to 3.4 because of missing support for the % operator on bytestrings (`bytes` in Python 3).
Line 23: Line 33:
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 [[http://hgbuildbot.kublai.com/waterfall|buildbot]], this is mostly a non-issue.
Line 25: Line 34:
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.

== Python 3.x support ==

Mercurial is actively being ported to Python 3. See [[Python3]] for more.

Mercurial will never support Python 3.0 to 3.4 because of missing support for the % operator on bytestrings (`bytes` in Python 3).
We may drop support for older versions of Python 3 in the future.

Supported Python Versions

The versions of Python supported by Mercurial.

1. Current support

Mercurial 6.2 (to be released) and newer only has support for Python 3.6+. Mercurial 5.2 and newer has support for Python 2.7 and Python 3.5 and newer. Mercurial 4.3 and newer require at least Python 2.7. Python must include the following standard library components:

  • sha/hashlib
  • gzip
  • ssl
  • bz2 (needed for bundles)
  • ctypes (only on Windows)

2. Past support

Python 3.5 support is being dropped in Mercurial 6.2. Python 2 support is being dropped in Mercurial 6.2.

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.

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

3. Future support plan

We may drop support for older versions of Python 3 in the future.


SupportedPythonVersions (last edited 2022-03-04 01:04:18 by GregorySzorc)