From 0a6c74e21cc6750c843310ab35b47763cddaaf32 Mon Sep 17 00:00:00 2001 From: Craig Hesling Date: Mon, 19 Feb 2024 21:16:45 -0800 Subject: [PATCH] [python] Bump Python minimum version to 3.8 (#78828) As per the RFC https://discourse.llvm.org/t/rfc-upgrading-llvms-minimum-required-python-version/67571, raise the minimum Python version to ensure that the Python syntax doesn't become overly obsolete, to enable new Python feature usage, and to improve the maintainability of CI. One of the primary use cases for this higher Python version is to enable python type annotations that are more aligned with current Python best practices. This is not only important for our own internal Python for testing, but for the Python bindings that are exposed to users. --- llvm/CMakeLists.txt | 4 ++-- llvm/docs/GettingStarted.rst | 5 +++-- llvm/docs/GettingStartedVS.rst | 2 +- llvm/docs/ReleaseNotes.rst | 5 +++++ llvm/docs/TestingGuide.rst | 2 +- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 98cef005f07e0..6612f1364facd 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -877,8 +877,8 @@ set(LLVM_PROFDATA_FILE "" CACHE FILEPATH "Profiling data file to use when compiling in order to improve runtime performance.") if(LLVM_INCLUDE_TESTS) - # Lit test suite requires at least python 3.6 - set(LLVM_MINIMUM_PYTHON_VERSION 3.6) + # All LLVM Python files should be compatible down to this minimum version. + set(LLVM_MINIMUM_PYTHON_VERSION 3.8) else() # FIXME: it is unknown if this is the actual minimum bound set(LLVM_MINIMUM_PYTHON_VERSION 3.0) diff --git a/llvm/docs/GettingStarted.rst b/llvm/docs/GettingStarted.rst index 687d1f29b5a1f..a38fd2ae45f4d 100644 --- a/llvm/docs/GettingStarted.rst +++ b/llvm/docs/GettingStarted.rst @@ -288,7 +288,7 @@ uses the package and provides other details. Package Version Notes =========================================================== ============ ========================================== `CMake `__ >=3.20.0 Makefile/workspace generator -`python `_ >=3.6 Automated test suite\ :sup:`1` +`python `_ >=3.8 Automated test suite\ :sup:`1` `zlib `_ >=1.2.3.4 Compression library\ :sup:`2` `GNU Make `_ 3.79, 3.79.1 Makefile/build processor\ :sup:`3` =========================================================== ============ ========================================== @@ -296,7 +296,8 @@ Package Version Notes .. note:: #. Only needed if you want to run the automated test suite in the - ``llvm/test`` directory. + ``llvm/test`` directory, or if you plan to utilize any Python libraries, + utilities, or bindings. #. Optional, adds compression / uncompression capabilities to selected LLVM tools. #. Optional, you can use any other build tool supported by CMake. diff --git a/llvm/docs/GettingStartedVS.rst b/llvm/docs/GettingStartedVS.rst index a1eb88dccc9e5..4b15272635fbe 100644 --- a/llvm/docs/GettingStartedVS.rst +++ b/llvm/docs/GettingStartedVS.rst @@ -55,7 +55,7 @@ Visual Studio 2019 so separate installation is not required. If you do install CMake separately, Visual Studio 2022 will require CMake Version 3.21 or later. If you would like to run the LLVM tests you will need `Python -`_. Version 3.6 and newer are known to work. You can +`_. Version 3.8 and newer are known to work. You can install Python with Visual Studio 2019, from the Microsoft store or from the `Python web site `_. We recommend the latter since it allows you to adjust installation options. diff --git a/llvm/docs/ReleaseNotes.rst b/llvm/docs/ReleaseNotes.rst index 5be00d9d5a589..1125ed3b3cedb 100644 --- a/llvm/docs/ReleaseNotes.rst +++ b/llvm/docs/ReleaseNotes.rst @@ -47,6 +47,11 @@ Non-comprehensive list of changes in this release Update on required toolchains to build LLVM ------------------------------------------- +* The minimum Python version has been raised from 3.6 to 3.8 across all of LLVM. + This enables the use of many new Python features, aligning more closely with + modern Python best practices, and improves CI maintainability + See `#78828 `_ for more info. + Changes to the LLVM IR ---------------------- diff --git a/llvm/docs/TestingGuide.rst b/llvm/docs/TestingGuide.rst index e32e4d1e535ab..3e3a722f14187 100644 --- a/llvm/docs/TestingGuide.rst +++ b/llvm/docs/TestingGuide.rst @@ -23,7 +23,7 @@ Requirements ============ In order to use the LLVM testing infrastructure, you will need all of the -software required to build LLVM, as well as `Python `_ 3.6 or +software required to build LLVM, as well as `Python `_ 3.8 or later. LLVM Testing Infrastructure Organization