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

Bump minimum python version to 3.6 #19504

Merged
merged 2 commits into from
Nov 18, 2020
Merged

Conversation

ajtowns
Copy link
Contributor

@ajtowns ajtowns commented Jul 13, 2020

Python 3.5 has reached end-of-life as of September 2020, and 3.6 has some moderately nice features:

Note that 3.6 is not available in xenial (16.04), but is available in bionic (18.04), while focal (20.04) has 3.8. CentOS 7 and 8 have 3.6.8, Debian stable has 3.7.3, and gentoo and arch already had 3.6 and 3.7 in 2018.

@maflcko
Copy link
Member

maflcko commented Jul 13, 2020

review ACK, but I am not sure if we need to push this into the upcoming release. Is there any reason this can't wait 3.5 months? While xenial has a c++17 compiler, but lacks a c++17 compatible stdlib, xenial will die anyway. No strong opinion, though.

Might need to update the travis yaml python linter version?

@DrahtBot
Copy link
Contributor

DrahtBot commented Jul 13, 2020

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Conflicts

Reviewers, 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.

@ajtowns ajtowns force-pushed the 202007-python3.6 branch from 79b84b8 to 2b53176 Compare July 13, 2020 06:10
@ajtowns
Copy link
Contributor Author

ajtowns commented Jul 13, 2020

No objection to letting it wait; mostly just thought it made more sense to do a PR directly than open a "python 3.5 is nearing eol" issue.

@practicalswift
Copy link
Contributor

Concept ACK: alive is better than end-of-life

@maflcko maflcko modified the milestones: 0.21.0, 0.22.0 Jul 13, 2020
@maflcko
Copy link
Member

maflcko commented Jul 13, 2020

Assigned 0.22.0 milestone with proposed merge date of Nov 1st.

If python 3.6 is needed to simplify mypy, then it can be merged sooner #19389 (comment)

@jnewbery
Copy link
Contributor

Concept ACK

@DrahtBot DrahtBot mentioned this pull request Jul 13, 2020
1 task
Copy link
Member

@Sjors Sjors left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concept ACK. No strong preference on when, but having it coincide with our C++17 bump makes sense.

.python-version Outdated Show resolved Hide resolved
@laanwj
Copy link
Member

laanwj commented Jul 15, 2020

I like Python 3.6's improvements a lot,1 concept ACK if/when the Linux distributions we support building on have it.

@troygiorshev
Copy link
Contributor

Concept ACK

If python 3.6 is needed to simplify mypy, then it can be merged sooner #19389 (comment)

From what I can tell right now, I don't think this will be the case. I think we'll be ok with 3.5.

@fjahr
Copy link
Contributor

fjahr commented Jul 17, 2020

tested ACK 2b53176

Agree this can wait a bit and be done with c++17.

@fanquake
Copy link
Member

Concept ACK. No mention of 3.6+ related typing improvements in the op, which is probably what I'm most interested in. I wouldn't be overly concerned about CentOS 7 or Xenial support here.

@theStack
Copy link
Contributor

theStack commented Sep 6, 2020

Strong concept ACK (no need to rush though, as others already stated doing this along with the C++17 bump seems reasonable).

@kristapsk
Copy link
Contributor

Concept ACK

@maflcko
Copy link
Member

maflcko commented Oct 1, 2020

@ajtowns Are you still working on this? Would be good to rebase and address the feedback

@Sjors
Copy link
Member

Sjors commented Oct 1, 2020

tACK ef0b760 on macOS 10.15.7

@kristapsk
Copy link
Contributor

  • Use f'{x}' for string formatting in preference to '{}'.format(x) or '%s' % x.

This PR changes this in test/functional/feature_block.py, but there are other places where .format is still used, shouldn't it be changed everywhere then?

Also, maybe some linter script could be added that checks .py files for this?

But probably that's out of scope of this PR and can be done in follow-up PR(s).

@ajtowns
Copy link
Contributor Author

ajtowns commented Oct 1, 2020

  • Use f'{x}' for string formatting in preference to '{}'.format(x) or '%s' % x.

This PR changes this in test/functional/feature_block.py, but there are other places where .format is still used, shouldn't it be changed everywhere then?

It's changed there so that CI tests that it works (eg, failing if an older version of python is being used) and as an example for what the style looks like. General policy is to update code to new style guidelines only when the code is touched for other reasons, so really even doing that is pushing it :)

@practicalswift
Copy link
Contributor

practicalswift commented Oct 16, 2020

ACK modulo fix for CI failure :)

@maflcko
Copy link
Member

maflcko commented Oct 19, 2020

ACK 9bc4cdf

for 0.22

.travis.yml Show resolved Hide resolved
@maflcko
Copy link
Member

maflcko commented Nov 9, 2020

re-ACK 97c738f

for 22.0
only change is rebase

@maflcko maflcko merged commit 4b24c39 into bitcoin:master Nov 18, 2020
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Nov 18, 2020
barton2526 added a commit to barton2526/Gridcoin-Research that referenced this pull request Jul 12, 2021
luke-jr pushed a commit to bitcoinknots/bitcoin that referenced this pull request Dec 14, 2021
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Feb 15, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.