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