Skip to content

Conversation

maflcko
Copy link
Member

@maflcko maflcko commented Apr 18, 2023

There is no pressing reason to drop support for 3.7, however there are several maintenance issues:

Fix all maintenance issues by bumping the minimum.

@DrahtBot
Copy link
Contributor

DrahtBot commented Apr 18, 2023

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

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK fanquake, RandyMcMillan, fjahr
Concept ACK stickies-v, jamesob
Stale ACK TheCharlatan

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #26222 (Introduce field element and group element classes to test_framework/key.py by sipa)
  • #25797 (build: Add CMake-based build system by hebasto)
  • #24005 (test: add python implementation of Elligator swift by stratospher)

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.

@DrahtBot DrahtBot changed the title Bump python minimum version to 3.8 Bump python minimum version to 3.8 Apr 18, 2023
@maflcko maflcko added this to the 26.0 milestone Apr 18, 2023
Copy link
Contributor

@stickies-v stickies-v 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

I'm not sure why we're switching to focal instead of bullseye for the qt5 ci, but I don't really have a view either way. Just pointing it out.

@maflcko
Copy link
Member Author

maflcko commented Apr 18, 2023

I'm not sure why we're switching to focal instead of bullseye

The reason is that bullseye does not have a single of the needed packages:

(Also, bullseye will be EOL a year earlier than focal)

@fanquake
Copy link
Member

Concept ACK

@maflcko
Copy link
Member Author

maflcko commented Apr 18, 2023

Unrelated: Looks like there are a few bugs with GCC libstdc++-9:

So I worked around them.

maflcko pushed a commit to maflcko/bitcoin-core that referenced this pull request Apr 18, 2023
Also, switch ci_native_qt5 to clang-8 (from g++-8) to work around bugs.
This should be fine, because the i686_centos task still checks for g++-8
compatibility.

The bugs were that neither clang-8, nor g++-8, would play nicely with
GCC libstdc++-9. See bitcoin#27483 (comment)
maflcko pushed a commit to maflcko/bitcoin-core that referenced this pull request Apr 18, 2023
Also, switch ci_native_qt5 to clang (from g++-8) to work around bugs.
This should be fine, because the i686_centos task still checks for g++-8
compatibility.

See
bitcoin#27483 (comment)
for the list of bugs.
maflcko pushed a commit to maflcko/bitcoin-core that referenced this pull request Apr 18, 2023
Also, switch ci_native_qt5 to clang (from g++-8) to work around bugs.
This should be fine, because the i686_centos task still checks for g++-8
compatibility.

See
bitcoin#27483 (comment)
for the list of bugs.
maflcko pushed a commit to maflcko/bitcoin-core that referenced this pull request Apr 18, 2023
Also, switch ci_native_qt5 to clang (from g++-8) to work around bugs.
This should be fine, because the i686_centos task still checks for g++-8
compatibility.

See
bitcoin#27483 (comment)
for the list of bugs.
maflcko pushed a commit to maflcko/bitcoin-core that referenced this pull request Apr 18, 2023
Also, switch ci_native_qt5 to clang (from g++-8) to work around bugs.
This should be fine, because the i686_centos task still checks for g++-8
compatibility.

See
bitcoin#27483 (comment)
for the list of bugs.
maflcko pushed a commit to maflcko/bitcoin-core that referenced this pull request Apr 18, 2023
Also, switch ci_native_qt5 to clang (from g++-8) to work around bugs.
This should be fine, because the i686_centos task still checks for g++-8
compatibility.

See
bitcoin#27483 (comment)
for the list of bugs.
fanquake pushed a commit to fanquake/bitcoin that referenced this pull request Apr 21, 2023
Also, switch ci_native_qt5 to g++-9 (from g++-8) to work around bugs.
This should be fine, because the i686_centos task still checks for g++-8
compatibility.

See
bitcoin#27483 (comment)
for the list of bugs.
fanquake pushed a commit to fanquake/bitcoin that referenced this pull request Apr 21, 2023
This bump should not be needed, see discussion starting at
bitcoin#27483 (comment)
@maflcko maflcko requested review from fjahr and stickies-v April 27, 2023 07:45
@RandyMcMillan
Copy link
Contributor

RandyMcMillan commented Apr 27, 2023

ACK fac395e

#27130 (comment)

@fjahr
Copy link
Contributor

fjahr commented Apr 27, 2023

ACK fac395e

This is ok to merge but when I wrote that comment I meant to remove the modinv() function completely, e.g. fjahr@75b8ba5. You can pull this commit in here or we merge this now and I will open it as a follow-up. I think the comment in modinv() isn't accurate anymore after this change because python seems to use Exponentiation by Squaring and we don't really need a one-line function that and we also don't need to test native python code.

@DrahtBot DrahtBot removed the request for review from fjahr April 27, 2023 17:36
@maflcko
Copy link
Member Author

maflcko commented Apr 28, 2023

Thanks. I think it is best for you to open a follow-up, unless people want me to push the commit here.

@fanquake
Copy link
Member

I think it is best for you to open a follow-up,

Lets do that.

@fanquake fanquake merged commit d89aca1 into bitcoin:master Apr 28, 2023
@maflcko maflcko deleted the 2304-py38- branch April 28, 2023 10:43
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Apr 28, 2023
fanquake added a commit that referenced this pull request May 1, 2023
dc14ba0 test: remove modinv python util helper function (Fabian Jahr)

Pull request description:

  Since #27483 was merged the `modinv()` body is just one line calling pythons own implementation of `pow()`. We can just remove the function as it doesn't seem to add any value. Additionally the comment in the function is now outdated and the test is only testing two ways of doing modular inverse but both using python's `pow()` function.

ACKs for top commit:
  theStack:
    ACK dc14ba0

Tree-SHA512: e8b470c72dc3f9fd53699d0684650517b1ea35ad1d4c01cf9472c80d3e4474c0c72e429c0bd201eb99d204c87eee0d68285e6a388e4c506f30e14b2bff9c1c32
kwvg added a commit to kwvg/dash that referenced this pull request May 10, 2023
kwvg added a commit to kwvg/dash that referenced this pull request May 10, 2023
kwvg added a commit to kwvg/dash that referenced this pull request May 10, 2023
PastaPastaPasta pushed a commit to kwvg/dash that referenced this pull request May 11, 2023
RandyMcMillan pushed a commit to RandyMcMillan/bitcoin that referenced this pull request May 27, 2023
Also, switch ci_native_qt5 to g++-9 (from g++-8) to work around bugs.
This should be fine, because the i686_centos task still checks for g++-8
compatibility.

See
bitcoin#27483 (comment)
for the list of bugs.
RandyMcMillan pushed a commit to RandyMcMillan/bitcoin that referenced this pull request May 27, 2023
This bump should not be needed, see discussion starting at
bitcoin#27483 (comment)
janus pushed a commit to BitgesellOfficial/bitgesell that referenced this pull request Sep 3, 2023
Also, switch ci_native_qt5 to g++-9 (from g++-8) to work around bugs.
This should be fine, because the i686_centos task still checks for g++-8
compatibility.

See
bitcoin/bitcoin#27483 (comment)
for the list of bugs.
janus pushed a commit to BitgesellOfficial/bitgesell that referenced this pull request Sep 3, 2023
This bump should not be needed, see discussion starting at
bitcoin/bitcoin#27483 (comment)
knst pushed a commit to knst/dash that referenced this pull request Oct 19, 2023
fac395e ci: Bump ci/lint/Dockerfile (MarcoFalke)
fa6eb65 test: Use python3.8 pow() (MarcoFalke)
88881cf Bump python minimum version to 3.8 (MarcoFalke)

Pull request description:

  There is no pressing reason to drop support for 3.7, however there are several maintenance issues:

  * There is no supported operating system that ships 3.7 by default. (debian:buster is EOL and unmaintained to the extent that it doesn't run in the CI environment. See bitcoin#27340 (comment))
  * Compiling python 3.7 from source is also unsupported on at least macos, according to bitcoin#24017 (comment)
  * Recent versions of lief require 3.8, see bitcoin#27507 (comment)

  Fix all maintenance issues by bumping the minimum.

ACKs for top commit:
  RandyMcMillan:
    ACK fac395e
  fjahr:
    ACK fac395e
  fanquake:
    ACK fac395e

Tree-SHA512: c198decdbbe29d186d73ea3f6549d8a38479383495d14a965a2f9211ce39637b43f13a4c2a5d3bf56e2d468be4bbe49b4ee8e8e19ec69936ff43ddf2b714c712
knst pushed a commit to knst/dash that referenced this pull request Oct 19, 2023
fac395e ci: Bump ci/lint/Dockerfile (MarcoFalke)
fa6eb65 test: Use python3.8 pow() (MarcoFalke)
88881cf Bump python minimum version to 3.8 (MarcoFalke)

Pull request description:

  There is no pressing reason to drop support for 3.7, however there are several maintenance issues:

  * There is no supported operating system that ships 3.7 by default. (debian:buster is EOL and unmaintained to the extent that it doesn't run in the CI environment. See bitcoin#27340 (comment))
  * Compiling python 3.7 from source is also unsupported on at least macos, according to bitcoin#24017 (comment)
  * Recent versions of lief require 3.8, see bitcoin#27507 (comment)

  Fix all maintenance issues by bumping the minimum.

ACKs for top commit:
  RandyMcMillan:
    ACK fac395e
  fjahr:
    ACK fac395e
  fanquake:
    ACK fac395e

Tree-SHA512: c198decdbbe29d186d73ea3f6549d8a38479383495d14a965a2f9211ce39637b43f13a4c2a5d3bf56e2d468be4bbe49b4ee8e8e19ec69936ff43ddf2b714c712
PastaPastaPasta pushed a commit to knst/dash that referenced this pull request Oct 23, 2023
fac395e ci: Bump ci/lint/Dockerfile (MarcoFalke)
fa6eb65 test: Use python3.8 pow() (MarcoFalke)
88881cf Bump python minimum version to 3.8 (MarcoFalke)

Pull request description:

  There is no pressing reason to drop support for 3.7, however there are several maintenance issues:

  * There is no supported operating system that ships 3.7 by default. (debian:buster is EOL and unmaintained to the extent that it doesn't run in the CI environment. See bitcoin#27340 (comment))
  * Compiling python 3.7 from source is also unsupported on at least macos, according to bitcoin#24017 (comment)
  * Recent versions of lief require 3.8, see bitcoin#27507 (comment)

  Fix all maintenance issues by bumping the minimum.

ACKs for top commit:
  RandyMcMillan:
    ACK fac395e
  fjahr:
    ACK fac395e
  fanquake:
    ACK fac395e

Tree-SHA512: c198decdbbe29d186d73ea3f6549d8a38479383495d14a965a2f9211ce39637b43f13a4c2a5d3bf56e2d468be4bbe49b4ee8e8e19ec69936ff43ddf2b714c712
PastaPastaPasta added a commit to dashpay/dash that referenced this pull request Oct 23, 2023
Fabcien pushed a commit to Bitcoin-ABC/bitcoin-abc that referenced this pull request Feb 5, 2024
Summary:
And remove some compatibility code.

note that Electrum ABC is currently packaged with 3.9.13

Supported Linux operating systems ([[bitcoin/bitcoin#27483 | core#27483]]):
> FreeBSD 12/13 also ships with 3.9
> CentOS-like 8/9 also ships with 3.9 (and 3.11)
> OpenSuse Leap also ships with 3.9 (and 3.11)

Debian bullseye or newer
Ubuntu 21.04 and newer

Note that it is relatively easy to install python 3.9 on Ubuntu 20.04 with the package manager:
https://tecadmin.net/how-to-install-python-3-9-on-ubuntu-20-04/

Test Plan:
`ninja check-functional`

Check the doc for `hmac.digest` and `concurrent.futures` to confirm the API is compatible with python 3.9.

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Subscribers: Fabien

Differential Revision: https://reviews.bitcoinabc.org/D15373
Fabcien pushed a commit to Bitcoin-ABC/ElectrumABC that referenced this pull request Feb 5, 2024
Summary:
And remove some compatibility code.

note that Electrum ABC is currently packaged with 3.9.13

Supported Linux operating systems ([[bitcoin/bitcoin#27483 | core#27483]]):
> FreeBSD 12/13 also ships with 3.9
> CentOS-like 8/9 also ships with 3.9 (and 3.11)
> OpenSuse Leap also ships with 3.9 (and 3.11)

Debian bullseye or newer
Ubuntu 21.04 and newer

Note that it is relatively easy to install python 3.9 on Ubuntu 20.04 with the package manager:
https://tecadmin.net/how-to-install-python-3-9-on-ubuntu-20-04/

Test Plan:
`ninja check-functional`

Check the doc for `hmac.digest` and `concurrent.futures` to confirm the API is compatible with python 3.9.

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Subscribers: Fabien

Differential Revision: https://reviews.bitcoinabc.org/D15373
@bitcoin bitcoin locked and limited conversation to collaborators Apr 27, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants