Bump python minimum supported version to 3.9 #28211

pull maflcko wants to merge 3 commits into bitcoin:master from maflcko:2308-py39- changing 8 files +16 −18
  1. maflcko commented at 12:49 PM on August 3, 2023: member

    All supported operating systems ship with python 3.9 (or later), so bumping the minimum should not cause any issues. A bump will allow new code to use new python 3.9 features.

    For reference:

    This is for Bitcoin Core 27.0 in 2024 (next year), not the soon upcoming 26.0 next month.

  2. DrahtBot commented at 12:50 PM on August 3, 2023: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

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

    <!--006a51241073e994b41acfe9ec718e94-->

    Code Coverage

    For detailed information about the code coverage, see the test coverage report.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK jamesob, Sjors
    Concept ACK hebasto, jonatack

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

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #28348 (build: Bump g++ minimum supported version to 10 by maflcko)
    • #28210 (build: Bump clang minimum supported version to 13 by maflcko)

    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.

  3. maflcko added this to the milestone 27.0 on Aug 3, 2023
  4. maflcko commented at 12:50 PM on August 3, 2023: member

    Currently a draft, because CI will need to be fixed up in the next force push.

  5. DrahtBot added the label CI failed on Aug 3, 2023
  6. Sjors commented at 5:53 PM on August 4, 2023: member

    Don't forget to bump .python-version

  7. luke-jr commented at 4:05 PM on August 5, 2023: member

    CentOS Stream also ships with 3.9

    Isn't Stream a rolling release? What about RHEL?

  8. maflcko commented at 8:22 AM on August 6, 2023: member

    Isn't Stream a rolling release? What about RHEL?

    I don't think Stream it is a rolling release. It should ship all the same package versions as the corresponding RHEL release (however, the binaries may not be bit-by-bit-identical).

    I've adjusted the pull request description to say CentOS-like 8/9.

    You can verify it locally by running a fresh install of CentOS 9 Stream / Alma Linux 9 / Rocky Linux 9 and typing python3 --version. For me, it gives: Python 3.9.17. Trying to install it with dnf install python39 python3:

    Package python3-3.9.17-1.el9.x86_64 is already installed.
    Package python3-3.9.17-1.el9.x86_64 is already installed.
    

    On a fresh install of CentOS 8 Stream / Alma Linux 8 / Rocky Linux 8, you can use dnf install python39 python311 to install 3.9 or 3.11:

    Package python39-3.9.16-1.module_el8.8.0+3577+f4afbb0e.1.x86_64 is already installed.
    Package python3.11-3.11.2-2.el8_8.1.x86_64 is already installed.
    
  9. maflcko force-pushed on Aug 6, 2023
  10. maflcko force-pushed on Aug 23, 2023
  11. maflcko force-pushed on Aug 23, 2023
  12. Sjors commented at 4:56 PM on August 23, 2023: member

    I lightly tested fa5b76d1d8e1fb9bbb4a5cb11385c9b45bb91214 on Intel macOS 13.5 by installing Python 3.9.17 via pyenv, running make deploy as well as the functional tests. Seems fine.

  13. jamesob approved
  14. jamesob commented at 5:33 PM on August 23, 2023: contributor
  15. maflcko force-pushed on Aug 23, 2023
  16. DrahtBot removed the label CI failed on Aug 24, 2023
  17. maflcko marked this as ready for review on Aug 24, 2023
  18. DrahtBot added the label Needs rebase on Aug 24, 2023
  19. maflcko force-pushed on Aug 24, 2023
  20. DrahtBot removed the label Needs rebase on Aug 24, 2023
  21. hebasto commented at 3:51 PM on August 25, 2023: member

    Concept ACK.

  22. maflcko renamed this:
    Bump python minimum version to 3.9
    Bump python minimum supported version to 3.9
    on Aug 27, 2023
  23. jonatack commented at 3:50 PM on August 27, 2023: member

    Concept ACK

  24. ci: Bump i686_multiprocess.sh to latest Ubuntu LTS
    There is no need to have it stuck on the previous one.
    This is needed for the next commit.
    fa8996b930
  25. Bump python minimum version to 3.9 faf70c1f33
  26. doc: Recommend lint image build on every call fa25e8b0a1
  27. maflcko force-pushed on Aug 29, 2023
  28. maflcko commented at 12:28 PM on August 29, 2023: member

    rebased for fresh CI, no changes

  29. jamesob approved
  30. jamesob commented at 4:35 PM on August 29, 2023: contributor

    ACK fa25e8b0a1610553014c786428f146ef9c694678 (jamesob/ackr/28211.1.MarcoFalke.bump_python_minimum_supp)

    Ran new lint (+ build) command, ran functional tests.

  31. in .python-version:1 in fa25e8b0a1
       0 | @@ -1 +1 @@
       1 | -3.8.17
       2 | +3.9.17
    


    Sjors commented at 9:06 AM on August 30, 2023:

    Bump to 3.9.18 if you have to retouch. This time I tested with that patch version.


    maflcko commented at 9:49 AM on August 30, 2023:

    I won't be touching this pull again for now. So I guess I can include this as unrelated minor fixup commit in https://github.com/bitcoin/bitcoin/pull/28210

  32. in ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh:12 in faf70c1f33 outdated
      11 | -# Use minimum supported python3.8 and clang-10, see doc/dependencies.md
      12 | -export PACKAGES="python3-zmq clang-10 llvm-10 libc++abi-10-dev libc++-10-dev"
      13 | -export DEP_OPTS="NO_WALLET=1 CC=clang-10 CXX='clang++-10 -stdlib=libc++'"
      14 | +export CI_IMAGE_NAME_TAG="docker.io/debian:bullseye"
      15 | +# Use minimum supported python3.9 and clang-10 (or best-effort clang-11), see doc/dependencies.md
      16 | +export PACKAGES="python3-zmq clang-11 llvm-11 libc++abi-11-dev libc++-11-dev"
    


    Sjors commented at 9:10 AM on August 30, 2023:

    Shouldn't we keep clang-10 here as long as that's the minimum requirement?


    maflcko commented at 9:47 AM on August 30, 2023:

    I haven't seen a functional difference from clang-10 up to clang-12 so far for the purposes in this CI task.

    Installing clang-10 on bullseye is not possible, unless you have a patch I can take?

    In any case, this is just temporary, because clang will be bumped to 13 immediately after. (If not, we should just increase the minimum to 11)

  33. Sjors commented at 9:28 AM on August 30, 2023: member

    Tested fa25e8b0a1610553014c786428f146ef9c694678 by running the functional tests on macOS 13.5.1 and the Docker linter on Ubuntu. Looks good except I don't understand the rationale for also bumping clang.

  34. Sjors commented at 9:56 AM on August 30, 2023: member

    ACK fa25e8b0a1610553014c786428f146ef9c694678

  35. maflcko renamed this:
    Bump python minimum supported version to 3.9
    [27.0] Bump python minimum supported version to 3.9
    on Aug 30, 2023
  36. maflcko renamed this:
    [27.0] Bump python minimum supported version to 3.9
    Bump python minimum supported version to 3.9
    on Oct 24, 2023
  37. DrahtBot requested review from hebasto on Oct 24, 2023
  38. DrahtBot requested review from jonatack on Oct 24, 2023
  39. maflcko commented at 4:02 PM on October 24, 2023: member

    Is this rfm, or is something else needed here?

  40. fanquake commented at 4:05 PM on October 24, 2023: member

    Makes sense for this to go in first, and rebase the compiler bumps.

  41. fanquake merged this on Oct 24, 2023
  42. fanquake closed this on Oct 24, 2023

  43. maflcko deleted the branch on Oct 24, 2023
  44. fanquake referenced this in commit a786fd2041 on May 21, 2024
  45. PastaPastaPasta referenced this in commit d7f8e1b466 on Oct 4, 2024
  46. PastaPastaPasta referenced this in commit 64cd338894 on Oct 6, 2024
  47. PastaPastaPasta referenced this in commit 3a18f087bf on Oct 24, 2024
  48. bitcoin locked this on May 22, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-13 18:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me