Dropping Support for Python 2.6

Pierre-Yves David pierre-yves.david at ens-lyon.org
Tue May 2 18:30:07 UTC 2017


On 04/27/2017 09:23 PM, Gregory Szorc wrote:
> I think the time has come to make a decision about dropping support for
> Python 2.6.

Seems like a good idea overall.
Let me add some details on the step we took to drop 2.4

>
> In [1], we already decided that supporting 2.6 on Windows made no sense.
> While I don't think we ever wrote a patch, support for 2.6 on Windows is
> effectively gone.
>
> Also in that thread, Facebook said they will stop caring about Python
> 2.6 no later than 2017-04-30. Facebook runs some internal CI that helps
> flush out upstream bugs. And once they drop 2.6 support on their end, I
> imagine it will be more difficult for them to contribute certain things
> to core because they require 2.7. I'd like to not inconvenience one of
> our largest source of contributions.
>
> In [2], Augie seemed to indicate that he supports 4.2 or 4.3 being the
> last release that supports Python 2.6.
>
> At this point in time, Python 2.6 is a constant thorn in our side to
> support. It is hampering efforts to modernize the code. This is making
> the Python 3 port more difficult than it could be. There are bugs and
> workarounds for 2.6 that are just plain ugly. Furthermore, Python 2.6
> isn't a secure execution platform. It doesn't support modern TLS
> versions and features. Upstream CPython support has been dead since
> 2013. Only long term support distros like RedHat 6 continue to run and
> support Python 2.6.

For important distribution without 2.6 (in our case that was CentOS 5), 
we started offering our own package containing both Mercurial and Python 
2.7.

This was quite a success: there have been recurring user complains since 
the builder went down (more on this later). I wonder if we can get more 
concrete usage number from the webserver log[1].

I think we should consider doing so for the 2.6 drop too.

The main question that needs to be answered first is: what are the 
distribution that are still on 2.6 and which one do we care about ?

> I'd like to formally propose making Mercurial 4.2 (the release scheduled
> for May 1) the last release that supports Python 2.6.
>
> I anticipate that dropping 2.6 support will only inconvenience users on
> certain, legacy Linux distributions and other *NIX operating systems in
> a similar boat. Of these, I'm willing to wager that we really only care
> about RHEL 6 and variants (like CentOS 6). If these users will be
> significantly inconvenienced by lack of Python 2.6 support, I propose we
> make it easy to produce a self-contained Mercurial RPM containing a
> bundled Python 2.7. e.g. `make docker-centos6`. The Python within would
> be installed to e.g. /usr/lib/mercurial and wouldn't interfere with
> system operation: only shebangs in `hg` and other Mercurial-related
> executables would reference it. If the *capability* of producing those
> RPMs from a source distribution is not enough, we can consider hosting
> those RPMs on www.mercurial-scm.org <http://www.mercurial-scm.org> for
> direct download (read: we wouldn't operate a full RPM repository with
> metadata, just raw files).

So, we are already operating a repository at:

   https://www.mercurial-scm.org/release/

And we already have all the necessary bits in our current make file to 
create and update it such repository. As pointed in the previous 
section, these repositories have users, since they complains when it broke.

The builder use to run on some of my hardware in the USA, the thing when 
down for some time when I moved back to France (since the hardward spent 
months in cardbox). It went back online a bit last year but the build 
broken again a handful of month ago.
I did not had time to fix it for good since then. I've been running this 
in pure good will for a couple of year but I'm not a user of it. I would 
also be happy to free the hardware for other usage. So I'm not planning 
to fix this short terms.

Other member of the community (Anton for one, in CC) have expressed 
interested in resurrecting the builder. Maybe it is time to officially 
hand the thing to whoever wants to do it.

Cheers,

[1] Kevin, do we have that data ?

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list