-
Notifications
You must be signed in to change notification settings - Fork 37.7k
Bump minimum python version to 3.7 #23270
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
Conversation
Python 3.6 is set to reach end-of-life in 2021-12-23. https://docs.python.org/3/whatsnew/3.7.html
Previously updated in #19504 |
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
Is there any functionality new in 3.7 that we really want to use? If not, I don't think there's a good reason to be so eager with this. |
Concept ~0. I agree that unless there's something really new/shiny to take advantage of in 3.7, there's no issue as leaving the minimum as 3.6 for now. |
One reasoning to do this is that the release being EOL makes it harder to test against. But I'm not sure this is the case in practice. |
python 3.6 is shipped in Bionic, which will itself be shipped until at least 2024 |
The motivation is that releases after EOL are no longer maintained, so any bugs or security issues identified after the EOL will be unaddressed. Not sure how to weigh that against the cost of change. In my experience there are costs to diverging significantly from the currently-maintained code, e.g. incompatibilities introduced due to EOL versions not being tested against by other libraries. |
I'd highly doubt that there are any python (security) issues or bugs that affect running the Bitcoin Core tests locally. Also, not all CI tasks use 3.6, so us adding python code that only works on 3.6 shouldn't be an issue either. It might be good to wait until there is at least one specific reason that actually affects us before bumping. |
@@ -64,7 +64,7 @@ task: | |||
name: 'lint [bionic]' | |||
<< : *BASE_TEMPLATE | |||
container: | |||
image: ubuntu:bionic # For python 3.6, oldest supported version according to doc/dependencies.md | |||
image: ubuntu:bionic # For python 3.7, oldest supported version according to doc/dependencies.md |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bionic only ships with 3.6, so this doesn't work anyway
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doesn't work in the current state
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This doesn't work, but #26226 should work
@@ -7,7 +7,7 @@ | |||
export LC_ALL=C.UTF-8 | |||
|
|||
export CONTAINER_NAME=ci_native_nowallet | |||
export DOCKER_NAME_TAG=ubuntu:18.04 # Use bionic to have one config run the tests in python3.6, see doc/dependencies.md | |||
export DOCKER_NAME_TAG=ubuntu:18.04 # Use bionic to have one config run the tests in python3.7, see doc/dependencies.md | |||
export PACKAGES="python3-zmq clang-7 llvm-7 libc++abi-7-dev libc++-7-dev" # Use clang-7 to test C++17 compatibility, see doc/dependencies.md |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
python3-zmq
installs python3
(3.6), which is picked by the functional tests (shebang python3
), so this doesn't actually work
Python 3.6 is set to reach end-of-life in 2021-12-23.
https://www.python.org/dev/peps/pep-0494/#lifespan
https://docs.python.org/3/whatsnew/3.7.html