Menu

#277 Our minimum python version is getting hard to support

closed-later
nobody
5
2020-03-03
2015-04-16
No

Greetings docutils developers,

According to a prior conversation (subject: Drop support for obsolete Python versions? (was: Wheel distributions on PyPI) and RELEASE-NOTES.txt, the target for the next docutils release, 0.13, is python 2.5.

While going through the process of documenting how to test docutils across multiple python versions, I found various blockers that made testing 2.4 and 2.5 exceedingly tricky.

If you wanted to properly run tests on python 2.5, you would have to work around the python ssl module issue, install a lower unsupported version of virtualenv, a lower/unsupported version of pip. In another instance, you would have to drop virtualenv all together and easy_install it to system packages.

Factors outside our control are making it tedious, and perhaps impossible for us to stick a promise a user wouldn't encounter trouble using docutils in 2.5.

Tools we need for testing and ensuring we are supporting versions correctly, such as virtualenv and tox, are only supporting 2.6 and beyond:

  • virtualenv dropped support for python 2.5 on 1.10 (2013-07-23) [1]_
  • tox (a script for automating testing across multiple python versions) dropped python 2.5 support in 1.7.0 (2014-01-29) [2]_
  • setuptools 2.0 (2013-12-07) drops python 2.5 support [3]_
  • wheel only supports python 2.6 and above [4]_ [feature:#43]

It's beginning to get to the point of diminishing returns for supporting python 2.5. I also think it's a general blocker getting in the way of a lot of a lot things that could improve the tooling infrastructure, especially for tests and packaging (unittest2 / python 2.7's unittest, setuptools, wheels, better and cleaner python 3.x support).

Normally it's not best practice to recommend phasing out more than one version in a release. In this circumstance, it's not just getting harder to test the version, it's becoming less possible to infer someone would have stability on python 2.5, period. In this unique case it has been heard of to chop off support for 2.4 / 2.5 simultaneously in other projects, due to the usage, stability and testing situation.

What is the take on making the next release support a minimum of 2.6?

If we want to continue on track for python 2.5 support for 0.13, let me know, and I will ensure I find a way to create an environment to test it thoroughly before we cut the release.

Tony

P.S. Did anyone verify tests / tools for python 2.4 / 2.5 support during the 0.12 release? If so, how did they do it?

.. [1] https://pypi.python.org/pypi/virtualenv
.. [2] https://tox.readthedocs.org/en/latest/changelog.html#id8
.. [3] https://pypi.python.org/pypi/setuptools/15.1#installation-instructions
.. [4] https://pypi.python.org/pypi/wheel

Related

Bugs: #279

Discussion

  • Tony Narlock

    Tony Narlock - 2015-05-05

    Regarding the request in the list to close this ticket by Günter, Sorry, for reasons described in the mailing list thread, this would be misleading to end-users, as well as standing in the way of contributions I'd like to make.

    Due to Python 2.4 and 2.5 being EOL for years, the burden is frankly upon whoever insists to keep support to explain why we need to keep this support in the project.

    How we choose to approach is up to compromise. Gaslighting / holding the project at a standstill is counterproductive. This thread [1] goes into detail on it.

    [1] https://sourceforge.net/p/docutils/mailman/docutils-develop/thread/mhthr6%24k6r%241%40ger.gmane.org/#msg34072787

     

    Last edit: Tony Narlock 2015-05-05
  • Hugo

    Hugo - 2015-05-05

    The Pillow project is a five-year-old fork of the 20-year-old PIL project.

    Python 2.4 and 2.5 support were dropped in Pillow 2.0.0 (released March 2013), when Python 3 support was added.

    In those two years, I'm not aware of anyone asking about Python 2.4 or 2.5. I can't find anything in the GitHub issues.

    We test on Travis CI, on all their supported Python versions: 2.6, 2.7, 3.2, 3.3, 3.4, PyPy and PyPy3. It's great to have a standardised test environment like this.

    We also use unittest2, setuptools, and wheels.

     
  • Thomas Kluyver

    Thomas Kluyver - 2015-05-07

    Anyone still using Python 2.5 at this point has to install older versions of a number of packages - adding docutils==0.12 doesn't seem like a big problem. IPython dropped support for 2.5 back in 2011, and dropped 2.6 support just over a year ago (April 2014) - in both cases, we got fewer complaints than I was expecting.

    Unless you know of some specific group of users on Python 2.5 for whom docutils is especially important, I'd definitely recommend you drop it. I'm sure you can all do more interesting and useful things with your time than propping up infrastructure for a Python version that the rest of the community has abandoned.

    As I offered on the mailing list last year, I'm happy to help move docutils to single-source compatibility with Python 3 once Python 2.6 is the minimum supported version. I'd also recommend dropping support for Python 3.2 and older at the same time - I think the standard in the community now is >=2.6 and >=3.3.

     
  • Hugo

    Hugo - 2015-05-07

    Some stats here show less than 2% of 6,746 respondents to a poll are regularly using Python 2.5.

    http://www.randalolson.com/2015/01/30/python-usage-survey-2014/

    I'd be interested to see if there are any other version usage stats out there.

     
  • Tony Narlock

    Tony Narlock - 2015-05-09

    The team recognizes this the reality regarding supporting older python versions.

    It's true it's lame we're supporting old python versions. If I held it to a vote, I bet you 90% of people would say drop it. I can count on one hand people who, at present, know the internals / infrastructure of docutils in and out.

    There are other reasons and a bigger picture of why we don't want to pull out support just yet,

    If you have any questions / bugs regarding using docutils and versions, the team is happy to help and fix issues. See cases like [bugs:#279] for example.

    If it's just another comment about old python versions, you're free to state it, but at present let's focus on the new HTMLWriter, stability, docs and ramping up any efforts for reStructuredText help on other sites (StackOverflow, Quora) and projects.

    As always, you can always start a branch.

     

    Related

    Bugs: #279

  • Tony Narlock

    Tony Narlock - 2015-05-10
    • status: open --> closed-later
     
  • Tony Narlock

    Tony Narlock - 2015-05-10

    This issue is being closed. We'll swing back to bumping versions up later.

     

Log in to post a comment.