Bump minimum python version to 3.7 #23270

pull Empact wants to merge 2 commits into bitcoin:master from Empact:2021-10-python-3.7 changing 5 files +6 −6
  1. Empact commented at 10:06 AM on October 13, 2021: member
  2. Bump minimum python version to 3.7
    Python 3.6 is set to reach end-of-life in 2021-12-23.
    
    https://docs.python.org/3/whatsnew/3.7.html
    2268713baf
  3. Empact commented at 10:24 AM on October 13, 2021: member

    Previously updated in #19504 Python 3.7 EOL is set for 2023-06-27 https://www.python.org/downloads/

  4. laanwj added the label Utils/log/libs on Oct 13, 2021
  5. build: Drop errant commas from python autoconf 90acd9a4d1
  6. Empact cross-referenced this on Oct 13, 2021 from issue build: add python3.10 alias to AC_PATH_PROGS call in configure by fanquake
  7. DrahtBot commented at 1:55 PM on October 13, 2021: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

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

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #23217 ([DO NOT MERGE] ci: Test required resources for native Windows task by hebasto)

    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.

  8. laanwj commented at 2:03 PM on October 13, 2021: member

    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.

  9. DrahtBot cross-referenced this on Oct 13, 2021 from issue [DO NOT MERGE] ci: Test required resources for native Windows task by hebasto
  10. fanquake commented at 2:20 AM on October 14, 2021: member

    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.

  11. laanwj commented at 12:03 PM on October 14, 2021: member

    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.

  12. maflcko commented at 12:40 PM on October 14, 2021: member

    python 3.6 is shipped in Bionic, which will itself be shipped until at least 2024

  13. Empact commented at 1:08 PM on October 14, 2021: member

    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.

  14. maflcko commented at 1:15 PM on October 14, 2021: member

    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.

  15. in .cirrus.yml:67 in 90acd9a4d1
      63 | @@ -64,7 +64,7 @@ task:
      64 |    name: 'lint [bionic]'
      65 |    << : *BASE_TEMPLATE
      66 |    container:
      67 | -    image: ubuntu:bionic  # For python 3.6, oldest supported version according to doc/dependencies.md
      68 | +    image: ubuntu:bionic  # For python 3.7, oldest supported version according to doc/dependencies.md
    


    maflcko commented at 1:15 PM on October 14, 2021:

    bionic only ships with 3.6, so this doesn't work anyway

  16. maflcko changes_requested
  17. maflcko commented at 1:16 PM on October 14, 2021: member

    Doesn't work in the current state

  18. Empact closed this on Oct 14, 2021

  19. Empact deleted the branch on Oct 14, 2021
  20. maflcko cross-referenced this on Jan 11, 2022 from issue Bump Python dependency version by fjahr
  21. maflcko cross-referenced this on Mar 23, 2022 from issue build: require libtool 2.4.2 by fanquake
  22. in ci/test/00_setup_env_native_nowallet.sh:11 in 90acd9a4d1
       6 | @@ -7,7 +7,7 @@
       7 |  export LC_ALL=C.UTF-8
       8 |  
       9 |  export CONTAINER_NAME=ci_native_nowallet
      10 | -export DOCKER_NAME_TAG=ubuntu:18.04  # Use bionic to have one config run the tests in python3.6, see doc/dependencies.md
      11 | +export DOCKER_NAME_TAG=ubuntu:18.04  # Use bionic to have one config run the tests in python3.7, see doc/dependencies.md
      12 |  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
    


    maflcko commented at 1:30 PM on October 3, 2022:

    python3-zmq installs python3 (3.6), which is picked by the functional tests (shebang python3), so this doesn't actually work

  23. maflcko commented at 1:30 PM on October 3, 2022: member

    This doesn't work, but #26226 should work

  24. Empact restored the branch on Nov 18, 2022
  25. bitcoin locked this on Nov 18, 2023

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-05-20 06:53 UTC