From a73dfddbe2e17ac9696f2fc8b5db49f02ee01bb8 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Wed, 23 Oct 2024 14:26:05 +0300 Subject: [PATCH 01/10] Remove redundant Python 2 code --- builders/nix-python-builder.psm1 | 3 +-- installers/win-setup-template.ps1 | 11 ++--------- tests/sources/python-modules.py | 25 ------------------------- tests/sources/python-urlopen-https.py | 6 +----- 4 files changed, 4 insertions(+), 41 deletions(-) diff --git a/builders/nix-python-builder.psm1 b/builders/nix-python-builder.psm1 index b15878e0..00d6e8df 100644 --- a/builders/nix-python-builder.psm1 +++ b/builders/nix-python-builder.psm1 @@ -61,8 +61,7 @@ class NixPythonBuilder : PythonBuilder { Return name of Python binary. #> - if ($this.Version.Major -eq 2) { $pythonBinary = "python" } else { $pythonBinary = "python3" } - return $pythonBinary + return "python3" } [string] Download() { diff --git a/installers/win-setup-template.ps1 b/installers/win-setup-template.ps1 index e2a33b8b..893e2502 100644 --- a/installers/win-setup-template.ps1 +++ b/installers/win-setup-template.ps1 @@ -10,12 +10,7 @@ function Get-RegistryVersionFilter { ) $archFilter = if ($Architecture -eq 'x86') { "32-bit" } else { "64-bit" } - ### Python 2.7 x86 have no architecture postfix - if (($Architecture -eq "x86") -and ($MajorVersion -eq 2)) { - "Python $MajorVersion.$MinorVersion.\d+$" - } else { - "Python $MajorVersion.$MinorVersion.*($archFilter)" - } + "Python $MajorVersion.$MinorVersion.*($archFilter)" } function Remove-RegistryEntries { @@ -128,9 +123,7 @@ if ($LASTEXITCODE -ne 0) { } Write-Host "Create `python3` symlink" -if ($MajorVersion -ne "2") { - New-Item -Path "$PythonArchPath\python3.exe" -ItemType SymbolicLink -Value "$PythonArchPath\python.exe" -} +New-Item -Path "$PythonArchPath\python3.exe" -ItemType SymbolicLink -Value "$PythonArchPath\python.exe" Write-Host "Install and upgrade Pip" $Env:PIP_ROOT_USER_ACTION = "ignore" diff --git a/tests/sources/python-modules.py b/tests/sources/python-modules.py index 833fee55..134d992e 100644 --- a/tests/sources/python-modules.py +++ b/tests/sources/python-modules.py @@ -3,8 +3,6 @@ This is needed for Linux since we build from source. """ -from __future__ import print_function - import importlib import sys @@ -182,29 +180,6 @@ 'zipfile' ] -# Modules that had different names in Python 2 -if sys.version_info.major == 2: - def replace(lst, old, new): - lst[lst.index(old)] = new - - # Keys are the Python 2 names - # Values are the Python 3 names - renames = { - 'ConfigParser': 'configparser', - 'copy_reg': 'copyreg', - 'HTMLParser': 'html', - 'httplib': 'http', - 'Queue': 'queue', - 'repr': 'reprlib', - 'SocketServer': 'socketserver', - 'xmlrpclib': 'xmlrpc', - 'Tkinter': 'tkinter' - } - - # All of the Python 3 names should be in the list - for python2name, python3name in renames.items(): - replace(standard_library, python3name, python2name) - # Add new modules # See https://docs.python.org/3/whatsnew/index.html if sys.version_info >= (3, 2): diff --git a/tests/sources/python-urlopen-https.py b/tests/sources/python-urlopen-https.py index 14fd81f3..cd41c627 100644 --- a/tests/sources/python-urlopen-https.py +++ b/tests/sources/python-urlopen-https.py @@ -1,9 +1,5 @@ import sys - -if sys.version_info[0] == 2: - from urllib2 import urlopen -else: - from urllib.request import urlopen +from urllib.request import urlopen response = urlopen("https://raw.githubusercontent.com/actions/python-versions/c641695f6a07526c18f10e374e503e649fef9427/.gitignore") data = response.read() From 964d71cc9bb3fcd9f10af35f5b5e0828ddbd5a69 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Wed, 23 Oct 2024 14:28:58 +0300 Subject: [PATCH 02/10] Use Python 3.2 as base version --- builders/macos-python-builder.psm1 | 12 ++++-------- tests/python-tests.ps1 | 2 +- tests/sources/python-modules.py | 8 ++------ 3 files changed, 7 insertions(+), 15 deletions(-) diff --git a/builders/macos-python-builder.psm1 b/builders/macos-python-builder.psm1 index 6b36fddc..9ac695c8 100644 --- a/builders/macos-python-builder.psm1 +++ b/builders/macos-python-builder.psm1 @@ -90,14 +90,10 @@ class macOSPythonBuilder : NixPythonBuilder { } } - ### Compile with support of loadable sqlite extensions. Unavailable for Python 2.* - ### Link to documentation (https://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.enable_load_extension) - if ($this.Version -ge "3.2.0") { - $configureString += " --enable-loadable-sqlite-extensions" - $env:LDFLAGS += " -L$(brew --prefix sqlite3)/lib" - $env:CFLAGS += " -I$(brew --prefix sqlite3)/include" - $env:CPPFLAGS += "-I$(brew --prefix sqlite3)/include" - } + $configureString += " --enable-loadable-sqlite-extensions" + $env:LDFLAGS += " -L$(brew --prefix sqlite3)/lib" + $env:CFLAGS += " -I$(brew --prefix sqlite3)/include" + $env:CPPFLAGS += "-I$(brew --prefix sqlite3)/include" Write-Host "The passed configure options are: " Write-Host $configureString diff --git a/tests/python-tests.ps1 b/tests/python-tests.ps1 index 706a3b42..e09c346d 100644 --- a/tests/python-tests.ps1 +++ b/tests/python-tests.ps1 @@ -58,7 +58,7 @@ Describe "Tests" { # } # } - if (($Version -ge "3.2.0") -and ($Version -lt "3.11.0") -and (($Platform -ne "darwin") -or ($Architecture -ne "arm64"))) { + if ($Version -lt "3.11.0") -and (($Platform -ne "darwin") -or ($Architecture -ne "arm64"))) { It "Check if sqlite3 module is installed" { "python ./sources/python-sqlite3.py" | Should -ReturnZeroExitCode } diff --git a/tests/sources/python-modules.py b/tests/sources/python-modules.py index 134d992e..7f47cf8c 100644 --- a/tests/sources/python-modules.py +++ b/tests/sources/python-modules.py @@ -6,7 +6,7 @@ import importlib import sys -# The Python standard library as of Python 3.0 +# The Python standard library as of Python 3.2 standard_library = [ 'abc', 'aifc', @@ -32,6 +32,7 @@ 'collections', 'colorsys', 'compileall', + 'concurrent', 'configparser', 'contextlib', 'copy', @@ -182,11 +183,6 @@ # Add new modules # See https://docs.python.org/3/whatsnew/index.html -if sys.version_info >= (3, 2): - standard_library.extend([ - 'concurrent', - ]) - if sys.version_info >= (3, 3): standard_library.extend([ 'ipaddress', From 7b956f9427535397b163430ea3e39ebd7d7a6707 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Wed, 23 Oct 2024 14:30:23 +0300 Subject: [PATCH 03/10] Use Python 3.3 as base version --- tests/sources/python-modules.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/tests/sources/python-modules.py b/tests/sources/python-modules.py index 7f47cf8c..f6910ec9 100644 --- a/tests/sources/python-modules.py +++ b/tests/sources/python-modules.py @@ -6,7 +6,7 @@ import importlib import sys -# The Python standard library as of Python 3.2 +# The Python standard library as of Python 3.3 standard_library = [ 'abc', 'aifc', @@ -51,6 +51,7 @@ 'dummy_threading', 'email', 'encodings', + 'faulthandler', 'filecmp', 'fileinput', 'fnmatch', @@ -76,12 +77,14 @@ 'importlib', 'inspect', 'io', + 'ipaddress', 'json', 'keyword', 'lib2to3', 'linecache', 'locale', 'logging', + 'lzma', 'macpath', 'mailbox', 'mailcap', @@ -170,6 +173,7 @@ 'urllib', 'uu', 'uuid', + 'venv', 'warnings', 'wave', 'weakref', @@ -183,14 +187,6 @@ # Add new modules # See https://docs.python.org/3/whatsnew/index.html -if sys.version_info >= (3, 3): - standard_library.extend([ - 'ipaddress', - 'faulthandler', - 'lzma', - 'venv', - ]) - if sys.version_info >= (3, 4): standard_library.extend([ 'asyncio', From 2ae4b330849d56ca62a630031e1da15ba0cd0a07 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Wed, 23 Oct 2024 14:31:44 +0300 Subject: [PATCH 04/10] Use Python 3.4 as base version --- tests/sources/python-modules.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/tests/sources/python-modules.py b/tests/sources/python-modules.py index f6910ec9..6249fd1a 100644 --- a/tests/sources/python-modules.py +++ b/tests/sources/python-modules.py @@ -6,7 +6,7 @@ import importlib import sys -# The Python standard library as of Python 3.3 +# The Python standard library as of Python 3.4 standard_library = [ 'abc', 'aifc', @@ -15,6 +15,7 @@ 'ast', 'asynchat', 'asyncore', + 'asyncio', 'base64', 'bdb', 'binhex', @@ -51,6 +52,8 @@ 'dummy_threading', 'email', 'encodings', + 'ensurepip', + 'enum', 'faulthandler', 'filecmp', 'fileinput', @@ -100,6 +103,7 @@ 'operator', 'optparse', 'os', + 'pathlib', 'pdb', 'pickle', 'pickletools', @@ -126,6 +130,7 @@ 'rlcompleter', 'runpy', 'sched', + 'selectors', 'shelve', 'shlex', 'shutil', @@ -143,6 +148,7 @@ 'ssl', '_ssl', 'stat', + 'statistics', 'string', 'stringprep', 'struct', @@ -165,6 +171,7 @@ 'tokenize', 'trace', 'traceback', + 'tracemalloc', 'tty', 'turtle', 'turtledemo', @@ -187,17 +194,6 @@ # Add new modules # See https://docs.python.org/3/whatsnew/index.html -if sys.version_info >= (3, 4): - standard_library.extend([ - 'asyncio', - 'ensurepip', - 'enum', - 'pathlib', - 'selectors', - 'statistics', - 'tracemalloc', - ]) - if sys.version_info >= (3, 5): standard_library.extend([ 'typing', From cd5330408f2f80169d8eaee4715c2d8e5069e6f9 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Wed, 23 Oct 2024 14:32:10 +0300 Subject: [PATCH 05/10] Use Python 3.5 as base version --- builders/win-python-builder.psm1 | 6 +----- tests/sources/python-modules.py | 10 +++------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/builders/win-python-builder.psm1 b/builders/win-python-builder.psm1 index 95d11bc3..c7b18440 100644 --- a/builders/win-python-builder.psm1 +++ b/builders/win-python-builder.psm1 @@ -55,11 +55,7 @@ class WinPythonBuilder : PythonBuilder { $ArchitectureExtension = "" if ($this.Architecture -eq "x64") { - if ($this.Version -ge "3.5") { - $ArchitectureExtension = "-amd64" - } else { - $ArchitectureExtension = ".amd64" - } + $ArchitectureExtension = "-amd64" }elseif ($this.Architecture -eq "arm64") { $ArchitectureExtension = "-arm64" } diff --git a/tests/sources/python-modules.py b/tests/sources/python-modules.py index 6249fd1a..e0a46373 100644 --- a/tests/sources/python-modules.py +++ b/tests/sources/python-modules.py @@ -6,7 +6,7 @@ import importlib import sys -# The Python standard library as of Python 3.4 +# The Python standard library as of Python 3.5 standard_library = [ 'abc', 'aifc', @@ -176,6 +176,7 @@ 'turtle', 'turtledemo', 'types', + 'typing', 'unittest', 'urllib', 'uu', @@ -189,17 +190,12 @@ 'xdrlib', 'xml', 'xmlrpc', + 'zipapp', 'zipfile' ] # Add new modules # See https://docs.python.org/3/whatsnew/index.html -if sys.version_info >= (3, 5): - standard_library.extend([ - 'typing', - 'zipapp', - ]) - if sys.version_info >= (3, 6): standard_library.extend([ 'secrets', From f10eb9e42438ff47ec7fcfad4027ca614c11c5e2 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Wed, 23 Oct 2024 14:32:45 +0300 Subject: [PATCH 06/10] Use Python 3.6 as base version --- builders/win-python-builder.psm1 | 4 +--- tests/sources/python-modules.py | 8 ++------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/builders/win-python-builder.psm1 b/builders/win-python-builder.psm1 index c7b18440..c3d044c7 100644 --- a/builders/win-python-builder.psm1 +++ b/builders/win-python-builder.psm1 @@ -42,9 +42,7 @@ class WinPythonBuilder : PythonBuilder { Return extension for required version of Python executable. #> - $extension = if ($this.Version -lt "3.5" -and $this.Version -ge "2.5") { ".msi" } else { ".exe" } - - return $extension + return ".exe" } [string] GetArchitectureExtension() { diff --git a/tests/sources/python-modules.py b/tests/sources/python-modules.py index e0a46373..f9cce9da 100644 --- a/tests/sources/python-modules.py +++ b/tests/sources/python-modules.py @@ -6,7 +6,7 @@ import importlib import sys -# The Python standard library as of Python 3.5 +# The Python standard library as of Python 3.6 standard_library = [ 'abc', 'aifc', @@ -130,6 +130,7 @@ 'rlcompleter', 'runpy', 'sched', + 'secrets', 'selectors', 'shelve', 'shlex', @@ -196,11 +197,6 @@ # Add new modules # See https://docs.python.org/3/whatsnew/index.html -if sys.version_info >= (3, 6): - standard_library.extend([ - 'secrets', - ]) - if sys.version_info >= (3, 7): standard_library.extend([ 'contextvars', From 684d6f8c300b59d48092c2c1f617b1dc9ce802a7 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Wed, 23 Oct 2024 14:33:19 +0300 Subject: [PATCH 07/10] Use Python 3.7 as base version --- builders/macos-python-builder.psm1 | 37 +++++++++++++----------------- tests/sources/python-modules.py | 10 +++----- 2 files changed, 19 insertions(+), 28 deletions(-) diff --git a/builders/macos-python-builder.psm1 b/builders/macos-python-builder.psm1 index 9ac695c8..a5fe500b 100644 --- a/builders/macos-python-builder.psm1 +++ b/builders/macos-python-builder.psm1 @@ -67,27 +67,22 @@ class macOSPythonBuilder : NixPythonBuilder { ### Solution is to install these libraries from a third-party package manager, ### and then add the appropriate paths for the header and library files to configure command. ### Link to documentation (https://cpython-devguide.readthedocs.io/setup/#build-dependencies) - if ($this.Version -lt "3.7.0") { - $env:LDFLAGS = "-L/usr/local/opt/openssl@1.1/lib -L/usr/local/opt/zlib/lib" - $env:CFLAGS = "-I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/zlib/include" - } else { - $configureString += " --with-openssl=/usr/local/opt/openssl@1.1" - - # For Python 3.7.2 and 3.7.3 we need to provide PATH for zlib to pack it properly. Otherwise the build will fail - # with the error: zipimport.ZipImportError: can't decompress data; zlib not available - if ($this.Version -eq "3.7.2" -or $this.Version -eq "3.7.3" -or $this.Version -eq "3.7.17") { - $env:LDFLAGS = "-L/usr/local/opt/zlib/lib" - $env:CFLAGS = "-I/usr/local/opt/zlib/include" - } - - if ($this.Version -gt "3.7.12") { - $configureString += " --with-tcltk-includes='-I /usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6'" - } - - if ($this.Version -eq "3.7.17") { - $env:LDFLAGS += " -L$(brew --prefix bzip2)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix ncurses)/lib" - $env:CFLAGS += " -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(brew --prefix ncurses)/include" - } + $configureString += " --with-openssl=/usr/local/opt/openssl@1.1" + + # For Python 3.7.2 and 3.7.3 we need to provide PATH for zlib to pack it properly. Otherwise the build will fail + # with the error: zipimport.ZipImportError: can't decompress data; zlib not available + if ($this.Version -eq "3.7.2" -or $this.Version -eq "3.7.3" -or $this.Version -eq "3.7.17") { + $env:LDFLAGS = "-L/usr/local/opt/zlib/lib" + $env:CFLAGS = "-I/usr/local/opt/zlib/include" + } + + if ($this.Version -gt "3.7.12") { + $configureString += " --with-tcltk-includes='-I /usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6'" + } + + if ($this.Version -eq "3.7.17") { + $env:LDFLAGS += " -L$(brew --prefix bzip2)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix ncurses)/lib" + $env:CFLAGS += " -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(brew --prefix ncurses)/include" } $configureString += " --enable-loadable-sqlite-extensions" diff --git a/tests/sources/python-modules.py b/tests/sources/python-modules.py index f9cce9da..14304626 100644 --- a/tests/sources/python-modules.py +++ b/tests/sources/python-modules.py @@ -6,7 +6,7 @@ import importlib import sys -# The Python standard library as of Python 3.6 +# The Python standard library as of Python 3.7 standard_library = [ 'abc', 'aifc', @@ -36,12 +36,14 @@ 'concurrent', 'configparser', 'contextlib', + 'contextvars', 'copy', 'copyreg', 'crypt', 'csv', 'ctypes', 'curses', + 'dataclasses', 'datetime', 'dbm', 'decimal', @@ -197,12 +199,6 @@ # Add new modules # See https://docs.python.org/3/whatsnew/index.html -if sys.version_info >= (3, 7): - standard_library.extend([ - 'contextvars', - 'dataclasses', - ]) - # 'macpath' module has been removed from Python 3.8 if sys.version_info > (3, 7): standard_library.remove('macpath') From c7f7906c72a3cc60ca37e69a4676f2250853a1cf Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Wed, 23 Oct 2024 14:35:01 +0300 Subject: [PATCH 08/10] Use Python 3.8 as base version --- builders/macos-python-builder.psm1 | 26 +------------------------- tests/python-tests.ps1 | 10 ---------- tests/sources/python-modules.py | 7 +------ 3 files changed, 2 insertions(+), 41 deletions(-) diff --git a/builders/macos-python-builder.psm1 b/builders/macos-python-builder.psm1 index a5fe500b..c437eff1 100644 --- a/builders/macos-python-builder.psm1 +++ b/builders/macos-python-builder.psm1 @@ -31,14 +31,6 @@ class macOSPythonBuilder : NixPythonBuilder { .SYNOPSIS Prepare system environment by installing dependencies and required packages. #> - - if ($this.Version -eq "3.7.17") { - # We have preinstalled ncurses and readLine on the hoster runners. But we need to install bzip2 for - # setting up an environemnt - # If we get any issues realted to ncurses or readline we can try to run this command - # brew install ncurses readline - Execute-Command -Command "brew install bzip2" - } } [void] Configure() { @@ -68,23 +60,7 @@ class macOSPythonBuilder : NixPythonBuilder { ### and then add the appropriate paths for the header and library files to configure command. ### Link to documentation (https://cpython-devguide.readthedocs.io/setup/#build-dependencies) $configureString += " --with-openssl=/usr/local/opt/openssl@1.1" - - # For Python 3.7.2 and 3.7.3 we need to provide PATH for zlib to pack it properly. Otherwise the build will fail - # with the error: zipimport.ZipImportError: can't decompress data; zlib not available - if ($this.Version -eq "3.7.2" -or $this.Version -eq "3.7.3" -or $this.Version -eq "3.7.17") { - $env:LDFLAGS = "-L/usr/local/opt/zlib/lib" - $env:CFLAGS = "-I/usr/local/opt/zlib/include" - } - - if ($this.Version -gt "3.7.12") { - $configureString += " --with-tcltk-includes='-I /usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6'" - } - - if ($this.Version -eq "3.7.17") { - $env:LDFLAGS += " -L$(brew --prefix bzip2)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix ncurses)/lib" - $env:CFLAGS += " -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(brew --prefix ncurses)/include" - } - + $configureString += " --with-tcltk-includes='-I /usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6'" $configureString += " --enable-loadable-sqlite-extensions" $env:LDFLAGS += " -L$(brew --prefix sqlite3)/lib" $env:CFLAGS += " -I$(brew --prefix sqlite3)/include" diff --git a/tests/python-tests.ps1 b/tests/python-tests.ps1 index e09c346d..27b01092 100644 --- a/tests/python-tests.ps1 +++ b/tests/python-tests.ps1 @@ -90,16 +90,6 @@ Describe "Tests" { } } - # Pyinstaller 3.5 does not support Python 3.8.0. Check issue https://github.com/pyinstaller/pyinstaller/issues/4311 - if ($Version -lt "3.8.0" -and $Version.Major -ne "2") { - It "Validate Pyinstaller" { - "pip install pyinstaller" | Should -ReturnZeroExitCode - "pyinstaller --onefile ./sources/simple-test.py" | Should -ReturnZeroExitCode - $distPath = [IO.Path]::Combine($pwd, "dist", "simple-test") - "$distPath" | Should -ReturnZeroExitCode - } - } - It "Check urlopen with HTTPS works" { "python ./sources/python-urlopen-https.py" | Should -ReturnZeroExitCode } diff --git a/tests/sources/python-modules.py b/tests/sources/python-modules.py index 14304626..3b6873d2 100644 --- a/tests/sources/python-modules.py +++ b/tests/sources/python-modules.py @@ -6,7 +6,7 @@ import importlib import sys -# The Python standard library as of Python 3.7 +# The Python standard library as of Python 3.8 standard_library = [ 'abc', 'aifc', @@ -90,7 +90,6 @@ 'locale', 'logging', 'lzma', - 'macpath', 'mailbox', 'mailcap', 'mimetypes', @@ -199,10 +198,6 @@ # Add new modules # See https://docs.python.org/3/whatsnew/index.html -# 'macpath' module has been removed from Python 3.8 -if sys.version_info > (3, 7): - standard_library.remove('macpath') - # 'dummy_threading' module has been removed from Python 3.9 if sys.version_info > (3, 8): standard_library.remove('dummy_threading') From bee605c7969bc6c38bdc1fb36bacd0c50e06f414 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Wed, 23 Oct 2024 14:35:25 +0300 Subject: [PATCH 09/10] Use Python 3.9 as base version --- builders/macos-python-builder.psm1 | 4 ---- builders/ubuntu-python-builder.psm1 | 4 ++-- tests/sources/python-modules.py | 7 +------ 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/builders/macos-python-builder.psm1 b/builders/macos-python-builder.psm1 index c437eff1..8eb44bd6 100644 --- a/builders/macos-python-builder.psm1 +++ b/builders/macos-python-builder.psm1 @@ -50,10 +50,6 @@ class macOSPythonBuilder : NixPythonBuilder { ### will never be used itself by a Github Actions runner but using a universal2 Python is the only way to build ### universal2 C extensions and wheels. This is supported by Python >= 3.10 and was backported to Python >= ### 3.9.1 and >= 3.8.10. - ### Disabled, discussion: https://github.com/actions/python-versions/pull/114 - # if ($this.Version -ge "3.8.10" -and $this.Version -ne "3.8.13" -and $this.Version -ne "3.9.0" ) { - # $configureString += " --enable-universalsdk --with-universal-archs=universal2" - # } ### OS X 10.11, Apple no longer provides header files for the deprecated system version of OpenSSL. ### Solution is to install these libraries from a third-party package manager, diff --git a/builders/ubuntu-python-builder.psm1 b/builders/ubuntu-python-builder.psm1 index 35b159c5..d83b2bc5 100644 --- a/builders/ubuntu-python-builder.psm1 +++ b/builders/ubuntu-python-builder.psm1 @@ -53,8 +53,8 @@ class UbuntuPythonBuilder : NixPythonBuilder { Prepare system environment by installing dependencies and required packages. #> - if ($this.Version -lt "3.5.3") { - Write-Host "Python versions lower than 3.5.3 are not supported" + if ($this.Version -lt "3.9.0") { + Write-Host "Python versions lower than 3.9.0 are not supported" exit 1 } diff --git a/tests/sources/python-modules.py b/tests/sources/python-modules.py index 3b6873d2..8871d9ca 100644 --- a/tests/sources/python-modules.py +++ b/tests/sources/python-modules.py @@ -6,7 +6,7 @@ import importlib import sys -# The Python standard library as of Python 3.8 +# The Python standard library as of Python 3.9 standard_library = [ 'abc', 'aifc', @@ -51,7 +51,6 @@ 'dis', 'distutils', 'doctest', - 'dummy_threading', 'email', 'encodings', 'ensurepip', @@ -198,10 +197,6 @@ # Add new modules # See https://docs.python.org/3/whatsnew/index.html -# 'dummy_threading' module has been removed from Python 3.9 -if sys.version_info > (3, 8): - standard_library.remove('dummy_threading') - # 'symbol' and 'formatter' modules have been removed from Python 3.10 if sys.version_info >= (3, 10): standard_library.remove('symbol') From 0a0d053f29e80c883e116a1dc70aea327cc47429 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Wed, 23 Oct 2024 14:42:16 +0300 Subject: [PATCH 10/10] Add annotationlib for Python 3.14 --- tests/sources/python-modules.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/sources/python-modules.py b/tests/sources/python-modules.py index 8871d9ca..1c31adfd 100644 --- a/tests/sources/python-modules.py +++ b/tests/sources/python-modules.py @@ -236,6 +236,11 @@ standard_library.remove('uu') standard_library.remove('xdrlib') +if sys.version_info >= (3, 14): + standard_library.extend([ + 'annotationlib', + ]) + # Remove tkinter and Easter eggs excluded_modules = [ 'antigravity',