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

Remove support for Python 2.6 and 3.3 #2276

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

Remove support for Python 2.6 and 3.3 #2276

pekkaklarck opened this issue Dec 22, 2015 · 12 comments

Comments

@pekkaklarck
Copy link
Member

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
Copy link
Member Author

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
Copy link
Member

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
Copy link
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
Copy link
Member Author

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
Copy link
Contributor

aaltat commented Feb 28, 2018

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

@pekkaklarck
Copy link
Member Author

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 changed the title Remove support for Python 2.6 Remove support for Python 2.6 and 3.3 Jun 6, 2018
@pekkaklarck
Copy link
Member Author

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
- 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
Copy link
Contributor

hugovk commented Jun 7, 2018

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

@pekkaklarck
Copy link
Member Author

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
Copy link
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
Copy link
Member Author

@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
Copy link
Contributor

hugovk commented Jun 8, 2018

Thanks, I've updated the PR!

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

4 participants