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

Update minimum Python version to 3.5.0 #13268

Merged
merged 1 commit into from
Sep 14, 2020

Conversation

ngosang
Copy link
Member

@ngosang ngosang commented Aug 18, 2020

@FranciscoPombal
Copy link
Member

FranciscoPombal commented Aug 18, 2020

@ngosang 3.5 is almost EOL (less than 1 month), might as well go straight for 3.6 https://devguide.python.org/#status-of-python-branches

@ngosang
Copy link
Member Author

ngosang commented Aug 18, 2020

I know but I want to support 3.5 even if it is discontinued. It is used by many Windows users and some old Linux distributions. The main reason to bump the version is because the search plugins are not compatible with Python 3.3 nor Python 3.4 from now.

@FranciscoPombal
Copy link
Member

@ngosang I don't think there's any major Linux distro that qBittorrent currently "officially" supports that doesn't have python >= 3.6. Windows users should upgrade anyway as well.

As an example, Ubuntu 16.04, which is the most recent Ubuntu release that doesn't have python >= 3.6 (it has 3.5.x) is nearly EOL already, but qBittorrent hasn't supported it for a long time anyway.

@ngosang
Copy link
Member Author

ngosang commented Aug 18, 2020

We already had this discussion => qbittorrent/search-plugins#84 (comment)
Debian Stretch has Python 3.5 and it's used by thousands in Raspberry Pi and in other board computers. We are not improving qBittorrent by removing 3.5 support and we can cause troubles to users with old systems. Please, let me be conservative.

@FranciscoPombal
Copy link
Member

We already had this discussion => qbittorrent/search-plugins#84 (comment)
Debian Stretch has Python 3.5 and it's used by thousands in Raspberry Pi and in other board computers. We are not improving qBittorrent by removing 3.5 support and we can cause troubles to users with old systems. Please, let me be conservative.

Fine, I won't insist more.

@FranciscoPombal FranciscoPombal added the Search engine Issues related to the search engine/search plugins functionality label Aug 18, 2020
@Chocobo1
Copy link
Member

Chocobo1 commented Aug 19, 2020

The main reason to bump the version is because the search plugins are not compatible with Python 3.3 nor Python 3.4 from now.

Just to be sure, do you mean you're going to use features that are exclusively to python >= 3.5?

@ngosang
Copy link
Member Author

ngosang commented Aug 19, 2020

From now I'm not testing Python 3.4 in local anymore (and I removed it from TravisCI too https://github.com/qbittorrent/search-plugins/pull/144/files). I'm not going to do big changes in the code but without testing Python 3.4 support could be broken at any time. Furthermore, unofficial plugins are not tested with Python 3.4 neither.

@Chocobo1
Copy link
Member

I'm not going to do big changes in the code but without testing Python 3.4 support could be broken at any time.

Why?

The main reason to bump the version is because the search plugins are not compatible with Python 3.3 nor Python 3.4 from now.

Can you elaborate a bit on this please.

Furthermore, unofficial plugins are not tested with Python 3.4 neither.

This is a good point, let plugin author have access to more modern features and ease their burden on supporting older python versions.

@ngosang
Copy link
Member Author

ngosang commented Sep 13, 2020

@Chocobo1

I'm not going to do big changes in the code but without testing Python 3.4 support could be broken at any time.
Why?

Because I don't have Python 3.4 installed in my machine and I removed 3.4 from Travis CI. I'm going to test the changes in Python >= 3.5. If prefer the users to update the Python version that reporting bugs from old Python versions.

The main reason to bump the version is because the search plugins are not compatible with Python 3.3 nor Python 3.4 from now.
Can you elaborate a bit on this please.

The same as before, I don't test the plugins in Python 3.3 since +2 years and Python 3.4 since +1 year. I can't guarantee that they work well, maybe they don't for years. I'm just doing a "best effort" to not include newest functionalities in the code.

Those versions don't have support from Python, in fact the minimum supported version from now should be Python 3.6, not 3.5. I don't like the idea of "forcing" people to update the software, but Python 3.6 is 4 years old now (it's not new software). This will be better for the users (security, etc...) and for me (less testing and issues) => https://en.wikipedia.org/wiki/History_of_Python#Table_of_versions
I can update this PR to bump Python 3.6

@Chocobo1
Copy link
Member

Because I don't have Python 3.4 installed in my machine and I removed 3.4 from Travis CI. I'm going to test the changes in Python >= 3.5. If prefer the users to update the Python version that reporting bugs from old Python versions.

Well I'm just thinking out loud, if 3.4 is not removed from TravisCI then it is possible to still support it although it is a bit cumbersome...

Those versions don't have support from Python, in fact the minimum supported version from now should be Python 3.6, not 3.5. I don't like the idea of "forcing" people to update the software, but Python 3.6 is 4 years old now (it's not new software).

I think we can do that at the end of this year or at the start of next year.

@Chocobo1 Chocobo1 merged commit 49e55d5 into qbittorrent:master Sep 14, 2020
@Chocobo1
Copy link
Member

@ngosang
Thank you!

IceCodeNew pushed a commit to IceCodeNew/qBittorrent-Enhanced-Edition that referenced this pull request Sep 15, 2020
@xavier2k6
Copy link
Member

xavier2k6 commented Aug 28, 2021

I think we can do that at the end of this year or at the start of next year.

@Chocobo1 @ngosang Just a reminder to look at this again.

minimum supported version from now should be Python 3.6, not 3.5. I don't like the idea of "forcing" people to update the software, but Python 3.6 is 4 years old now (it's not new software). This will be better for the users (security, etc...)

In relation to security comment, perhaps the CVE list below could also aid in determining minimum supported version:
https://www.cvedetails.com/vulnerability-list/vendor_id-10210/product_id-18230/Python-Python.html

Ubuntu 20.04 for example is the minimum Linux OS we support & has Python 3.8.2 as the default version OOB.
Ubuntu 20.10 has Python 3.8.6
Ubuntu 21.04/21.10 has Python 3.9.4

Debian Stretch, although under LTS until June 2022 should now be re-evaluated as the basis for minimum Python
It also falls below our minimum version of Boost

Debian Buster which is inline to take over as LTS version comes with "Python 3.7.3"
NOTE: Debian distros still seem to only provide 4.1.5/4.2.5

My own opinion is to raise minimum to 3.8.2 inline with what we support on Ubuntu
We should change the windows download links anyway provided by qBittorrent to newer (3.8.10)?!
Note that Python 3.9+ cannot be used on Windows 7 or earlier.

This could be done for the v4_3_x branch as #15126 will be in v4_4_x branch when done/merged.

const QString installerURL = "https://www.python.org/ftp/python/3.8.5/python-3.8.5-amd64.exe";
#else
const QString installerURL = "https://www.python.org/ftp/python/3.8.5/python-3.8.5.exe";

Also, How come this wasn't changed?

, tr("Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work.\nMinimum requirement: 3.3.0.")

@xavier2k6
Copy link
Member

Note that Python 3.9+ cannot be used on Windows 7 or earlier.

I wonder would it be possible to make use of IsWindows7OrGreater function & IsWindows10OrGreater function to provide the supported python installer(s) for those systems.

Example:
Windows 7+ -> Python 3.8.10.
Windows 10+ -> Python 3.9.7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Search engine Issues related to the search engine/search plugins functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants