Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop Python 2.6 Support #1372

Closed
CounterPillow opened this issue Mar 13, 2017 · 12 comments
Closed

Drop Python 2.6 Support #1372

CounterPillow opened this issue Mar 13, 2017 · 12 comments

Comments

@CounterPillow
Copy link
Member

I wish to start a discussion on whether we should drop Python 2.6 support for good.

Reasons for abandoning Python 2.6 support

  1. No modern distribution ships it as the default Python anymore.
  2. pip is broken on it, breaking our travis.
  3. Dropping Python 2.6 makes porting to Python 3 easier.
  4. Python 2.6 is no longer supported by upstream.

Reasons for keeping Python 2.6 support

  1. CentOS 6, released in 2011, supported until 2020, still ships Python 2.6 by default.
  2. CentOS 5, released 2007, supported until March 31st of 2017 (i.e. only this month), still has Python 2.6 as an optional "upgrade" over 2.5 I believe.

Steps to drop Python 2.6 support

  1. Adjust the documentation to remove any mention of Python 2.6
  2. Remove Python 2.6 workarounds from the code
  3. Remove Python 2.6 travis tests
  4. Wirte blag past???
@eminence
Copy link
Member

Just for documentation purposes, can you do a survey of ubuntu/debian/centos/etc versions to see what version of python2 they ship? you started this with the centos5 and 6 stuff. they ship python2.6 by default, but do they provide 2.7?

@CounterPillow
Copy link
Member Author

CounterPillow commented Mar 13, 2017

  • Centos 5: Ships Python 2.5 by default, only provides Python 2.7 through unofficial sources. Also, will be dead by the end of the month.
  • CentOS 6: Ships Python 2.6 by default. Has several different guides for how to install Python 2.7 (either SCL or from source)
  • CentOS 7: Comes with Python 2.7
  • Ubuntu: Hasn't shipped Python 2.6 starting with the release 12.04
  • Debian: 2.7 as default since wheezy (currently oldstable, i.e. the release before the current one), like Ubuntu doesn't even provide Python 2.6 as an option.

Note that Python 2.7.0 was released almost 7 years ago, in July 2010. Python 2.7 is about as old as Overviewer itself. Python 2.6.0 was released in October 2008, when Obama had not taken office yet. People should change their distribution releases more frequently than their president, IMHO.

Additionally, it is worth noting that Pillow recently dropped support for Python 2.6 and 3.2.

Python 2.6 has been end-of-life since 29th of October 2013, receiving no security fixes.

Fun-fact: Python 2.6 has been unsupported by upstream for longer than I have been out of high-school.

@CounterPillow
Copy link
Member Author

I've identified some python 2.6 workarounds that we can remove:

  1. functools.partial being broken.
  2. this custom implementation of OrderedDict
  3. gzip file closing workaround
  4. this shit

@urda
Copy link
Contributor

urda commented Mar 13, 2017

I was shocked that python 2.6 was still supported when I was digging into my overviewer issue over the weekend. There should be no reason at all to continue to support it, especially since we only have three years left until 2.7 reaches its own EOL.

@aheadley
Copy link
Member

For what it's worth:
Pending gathering per-platform download stats, I am in favor of keeping Python 2.6 support as I suspect we still have a signficant userbase on EL6. From the user's perspective, I don't think compiling python from source is a viable option and SCL is kind of jank and generally annoying to use (at least on EL6 IIRC). That said, keeping (nice) EL6 support depends on PIL being a drop in replacement for pillow (not sure that it is right now). I'm not convinced the burden of keeping Python 2.6 support is all that great, but could be convinced that dropping 2.6 is a good choice if we had solid docs for running overviewer on EL6 (via SCL or Python 3.4 from EPEL) that weren't a ton of work for end users.

EL5 is old garbage and I am totally fine with dropping it, I don't think anyone is in favor of keeping it.

@CounterPillow
Copy link
Member Author

That said, keeping (nice) EL6 support depends on PIL being a drop in replacement for pillow (not sure that it is right now)

Pillow is a drop-in replacement for PIL, and I doubt EL6 is going to be using a Pillow version that doesn't support Python 2.6. I also doubt any user on EL6 is ever going to accidentally install a Pillow version that doesn't support Python 2.6, because pip is broken on EL6 due to TLS issues in Python 2.6.

If Python 2.6 support is kept, I at least want someone to either fix the Python 2.6 travis-ci tests or have them disabled, because right now everything shows up as failing because EL6 is also old garbage.

EL5 is old garbage and I am totally fine with dropping it, I don't think anyone is in favor of keeping it.

We have never really supported EL5 out of the box in the first place. There were packages, but users had to get Python 2.6 from EPEL. There's not really anything to "drop" here other than the table entries on the downloads page that still show EL5 but no packages.

@CounterPillow
Copy link
Member Author

pip officially dropped support for Python 2.6.

@markhughes
Copy link

markhughes commented Mar 23, 2017

As a side note, EL6 goes into maintenance only updates on the 10th of May. EL8 is around the corner from being released.

No one should be using EL5, at the end of this month they are stopping all updates for it. It's extremely dangerous to still be using EL5. Lets drop it!

@CounterPillow
Copy link
Member Author

EL5 build docs have already been removed, I'll have some leftovers to still clean up, aside from docs there's nothing to do for that particular platform though, since we never supported Python 2.5.

The current consensus of other overviewer devs I've gathered from IRC seems to be that we'll keep Python 2.6 support because of EL6, since removing code to support it is not worth the benefit and we'd lose out-of-the-box EL6 support. If there is any significant work on Overviewer being done (like a python 3.x port), it would probably be dropped.

That being said, due to pip being broken on platforms running Python 2.6, I've deactivated the travis-ci tests for python 2.6, so if I make changes that are incompatible with Python 2.6 I won't know about it until someone reports it.

@LeadMagnet
Copy link

LeadMagnet commented Jun 29, 2017

This may be off topic, but what version is recommended with Overviewer?

@CounterPillow
Copy link
Member Author

@LeadMagnet
the latest 2.7 version, but really, any 2.7 version will work fine

As of the time of writing, overviewer does not work with Python 3.x.

@hugovk
Copy link

hugovk commented Oct 16, 2017

Some more reasons for dropping 2.6:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants