Remove support for Python 2.6 and 3.3 #2276

Closed
pekkaklarck opened this Issue Dec 22, 2015 · 12 comments

Comments

Projects
None yet
4 participants
@pekkaklarck
Member

pekkaklarck commented Dec 22, 2015

It's time to drop Python 2.6 support in Robot Framework 3.1.

The main motivation:

  • Python 2.6 hasn't been officially supported, even with security updates, since October 2013.
  • Supporting Python 2.6 requires some time. That time is better spent fixing bugs and developing new features.
  • We get to use set literals, dict comprehensions, and other such syntax and modules not supported by Python 2.6.
  • All test libraries and other code running on Python 2.6 ought to run unchanged on Python 2.7. Upgrading is thus only matter of upgrading the underlying Python version. If that is impossible, it is unlikely these users can upgrade to newer RF releases either.
  • Users of older RedHat based Linux distributions that only contain Python 2.6 by default can easily install Python 2.7 from the official Software Collections repository.

For some more reasoning see http://www.snarky.ca/stop-using-python-2-6. Notice that we do not plan to drop Python 2.7 support in the foreseeable future.

@pekkaklarck pekkaklarck added this to the 3.1 milestone Dec 22, 2015

@pekkaklarck pekkaklarck referenced this issue in robotframework/SeleniumLibrary Jul 7, 2016

Closed

Drop Python 2.6 support #620

@pekkaklarck

This comment has been minimized.

Show comment
Hide comment
@pekkaklarck

pekkaklarck Oct 17, 2017

Member

Should we also drop official support from Python 3.3 at the same time? It reached EOL at 2017-09-29. I doubt this would make any difference in code, but having one less Python versions to test against would be nice. Are there Linux distributions in wide use that have Python 3.3 by default and where installing newer version is inconvenient?

Member

pekkaklarck commented Oct 17, 2017

Should we also drop official support from Python 3.3 at the same time? It reached EOL at 2017-09-29. I doubt this would make any difference in code, but having one less Python versions to test against would be nice. Are there Linux distributions in wide use that have Python 3.3 by default and where installing newer version is inconvenient?

@HelioGuilherme66

This comment has been minimized.

Show comment
Hide comment
@HelioGuilherme66

HelioGuilherme66 Oct 17, 2017

Contributor

I agree that support for Python 3.3 should be dropped. I think that Python 3.4 came really fast to correct problems on 3.3. Don't know of any Linux distributions with Python 3.3.

Contributor

HelioGuilherme66 commented Oct 17, 2017

I agree that support for Python 3.3 should be dropped. I think that Python 3.4 came really fast to correct problems on 3.3. Don't know of any Linux distributions with Python 3.3.

@hugovk

This comment has been minimized.

Show comment
Hide comment
@hugovk

hugovk Oct 18, 2017

Contributor

I agree to drop support for Python 3.3.

None of the currently-supported enterprise Linux distros ship 3.3:
image
https://en.wikipedia.org/wiki/CPython#Enterprise_Linux

By the way, here's pip installs for robotframework from PyPI for the last month:

$ pypinfo --percent --pip robotframework pyversion
python_version percent download_count
-------------- ------- --------------
2.7              90.1%         74,397
3.6               5.1%          4,181
3.5               2.3%          1,879
3.4               1.5%          1,225
2.6               0.7%            538
3.3               0.3%            236
None              0.1%             57
3.7               0.0%             21
3.2               0.0%              1
Contributor

hugovk commented Oct 18, 2017

I agree to drop support for Python 3.3.

None of the currently-supported enterprise Linux distros ship 3.3:
image
https://en.wikipedia.org/wiki/CPython#Enterprise_Linux

By the way, here's pip installs for robotframework from PyPI for the last month:

$ pypinfo --percent --pip robotframework pyversion
python_version percent download_count
-------------- ------- --------------
2.7              90.1%         74,397
3.6               5.1%          4,181
3.5               2.3%          1,879
3.4               1.5%          1,225
2.6               0.7%            538
3.3               0.3%            236
None              0.1%             57
3.7               0.0%             21
3.2               0.0%              1
@pekkaklarck

This comment has been minimized.

Show comment
Hide comment
@pekkaklarck

pekkaklarck Oct 18, 2017

Member

Thanks for the info @hugovk. It really seems like dropping Python 3.3 support wouldn't be a problem. As I already commented, I don't think it would have any effect on code, at least as long as we need to support Python 2.7. I guess we can decide this based on how easy it is to test against Python 3.3 on CI.

Member

pekkaklarck commented Oct 18, 2017

Thanks for the info @hugovk. It really seems like dropping Python 3.3 support wouldn't be a problem. As I already commented, I don't think it would have any effect on code, at least as long as we need to support Python 2.7. I guess we can decide this based on how easy it is to test against Python 3.3 on CI.

@aaltat

This comment has been minimized.

Show comment
Hide comment
@aaltat

aaltat Feb 28, 2018

Contributor

I am also happy to drop Python 3.3 support and support 3.4+.

Contributor

aaltat commented Feb 28, 2018

I am also happy to drop Python 3.3 support and support 3.4+.

@pekkaklarck

This comment has been minimized.

Show comment
Hide comment
@pekkaklarck

pekkaklarck Feb 28, 2018

Member

I think we can keep Python 3.3 support as long as it requires no extra code and it can be easily tested. When we eventually can drop Python 2 support, I hope we can make Python 3.6 the minimum to be able to use features like f-strings and order preserving dicts.

Member

pekkaklarck commented Feb 28, 2018

I think we can keep Python 3.3 support as long as it requires no extra code and it can be easily tested. When we eventually can drop Python 2 support, I hope we can make Python 3.6 the minimum to be able to use features like f-strings and order preserving dicts.

@pekkaklarck pekkaklarck added the alpha 1 label Apr 26, 2018

@pekkaklarck pekkaklarck changed the title from Remove support for Python 2.6 to Remove support for Python 2.6 and 3.3 Jun 6, 2018

@pekkaklarck

This comment has been minimized.

Show comment
Hide comment
@pekkaklarck

pekkaklarck Jun 6, 2018

Member

After thinking this a bit more, I've decided to drop Python 3.3 support in RF 3.1. The main reasons are:

  • It has reached end-of-life and is not supported anymore.
  • It has so few users that we cannot justify any extra work related to it.
  • We are going to setup new CI infrastructure to Robot. Adding jobs for Python 3.3 on Linux and Windows is extra work.

At least in the beginning it's unlikely that there are any code changes that actually prevent using Python 3.3. It is, however, not supported and we will do no testing with it. If someone has strong reasons why to continue supporting Python 3.3, it is time to react during the RF 3.1 development phase.

Member

pekkaklarck commented Jun 6, 2018

After thinking this a bit more, I've decided to drop Python 3.3 support in RF 3.1. The main reasons are:

  • It has reached end-of-life and is not supported anymore.
  • It has so few users that we cannot justify any extra work related to it.
  • We are going to setup new CI infrastructure to Robot. Adding jobs for Python 3.3 on Linux and Windows is extra work.

At least in the beginning it's unlikely that there are any code changes that actually prevent using Python 3.3. It is, however, not supported and we will do no testing with it. If someone has strong reasons why to continue supporting Python 3.3, it is time to react during the RF 3.1 development phase.

pekkaklarck added a commit that referenced this issue Jun 6, 2018

Enhanced installation instructions.
- Document that RF 3.1 drops Python 2.6 and 2.7 support. For details
  see #2276.
- Update IronPython pip usage documentation now that `-X:Frames`
  isn't anymore needed.
- Show how to use pip to install the elementtree module needed with
  IronPython. See #2742.
@hugovk

This comment has been minimized.

Show comment
Hide comment
@hugovk

hugovk Jun 7, 2018

Contributor

Should #2689 be merged to remove a load of now redundant 2.6 code?

Contributor

hugovk commented Jun 7, 2018

Should #2689 be merged to remove a load of now redundant 2.6 code?

@pekkaklarck

This comment has been minimized.

Show comment
Hide comment
@pekkaklarck

pekkaklarck Jun 7, 2018

Member

Damn, I had forgotten about #2689 and did lot of the same changes in b060ba1. Do you @hugovk have time and interest to look did I miss something important and possibly create a new PR?

Member

pekkaklarck commented Jun 7, 2018

Damn, I had forgotten about #2689 and did lot of the same changes in b060ba1. Do you @hugovk have time and interest to look did I miss something important and possibly create a new PR?

@hugovk

This comment has been minimized.

Show comment
Hide comment
@hugovk

hugovk Jun 7, 2018

Contributor

I've rebased the branch on master and force pushed, so no need for a new PR :)

#2689

Contributor

hugovk commented Jun 7, 2018

I've rebased the branch on master and force pushed, so no need for a new PR :)

#2689

@pekkaklarck

This comment has been minimized.

Show comment
Hide comment
@pekkaklarck

pekkaklarck Jun 8, 2018

Member

@hugovk The updated PR #2689 is great. I found two smallish problems with it, though. Do you have time to look at them or should I just fix them myself before or after merging the PR?

Member

pekkaklarck commented Jun 8, 2018

@hugovk The updated PR #2689 is great. I found two smallish problems with it, though. Do you have time to look at them or should I just fix them myself before or after merging the PR?

@hugovk

This comment has been minimized.

Show comment
Hide comment
@hugovk

hugovk Jun 8, 2018

Contributor

Thanks, I've updated the PR!

Contributor

hugovk commented Jun 8, 2018

Thanks, I've updated the PR!

pekkaklarck added a commit that referenced this issue Jun 8, 2018

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