Compare commits

...

25 Commits

Author SHA1 Message Date
aparnajyothi-y
d80ea3a25f Delete builders/nix-python-builder.psm1 2024-06-24 15:07:52 +05:30
aparnajyothi-y
7a302f1496 Update build-python-packages.yml 2024-06-24 15:03:36 +05:30
aparnajyothi-y
e18dd16151 Update win-python-builder.psm1 2024-06-20 14:46:12 +05:30
aparnajyothi-y
606312b02e Update build-python-packages.yml 2024-06-20 14:45:24 +05:30
Priya Gupta
cb2aecd6d9 Add Support for Linux arm64 Builds (#274)
* Included ubuntu-arm64 in  Build Python package yml

* Updated builder and installer scripts

* Updated test scripts

* Modified test file

* Replaced macos-11 with macos-13

* Update build-python-packages.yml
2024-06-13 09:17:40 -05:00
github-actions[bot]
1c85886f9c Update versions-manifest (#284)
Co-authored-by: Service account <no-reply@microsoft.com>
2024-06-11 21:40:26 -05:00
HarithaVattikuti
f14b797a5d Fix for corrupted published artifacts (#286)
* Add skippublishercheck

* Update download-artifact

* Remove skipcheck
2024-06-11 11:36:42 -05:00
HarithaVattikuti
cc396a6be6 Add skippublishercheck (#283) 2024-06-10 09:35:28 -05:00
HarithaVattikuti
1693c7defb Revert "Update versions-manifest (#281)" (#282)
This reverts commit 8108f421b7.
2024-06-10 08:28:48 -05:00
github-actions[bot]
8108f421b7 Update versions-manifest (#281)
Co-authored-by: Service account <no-reply@microsoft.com>
2024-06-09 23:48:30 -05:00
Priya Gupta
8bbb5413e0 Update build-python-packages.yml (#279) 2024-06-09 23:03:19 -05:00
Matthieu Darbois
c990e6da95 chore: update action versions (#267)
This removes Node.js 16 deprecation warnings
2024-05-22 08:08:47 -05:00
HarithaVattikuti
521be20d1e Updated arm64 versions (#273) 2024-05-10 12:16:17 -05:00
github-actions[bot]
064829bd03 Update versions-manifest (#272)
Co-authored-by: Service account <no-reply@microsoft.com>
2024-05-09 21:56:46 -05:00
github-actions[bot]
b77a7dee85 Update versions-manifest (#270)
Co-authored-by: Service account <no-reply@microsoft.com>
2024-05-09 10:10:04 -05:00
Matthieu Darbois
37e7166250 fix: always reinstall pip (#271)
* fix: always reinstall pip

If the default pip version is also the latest one,
then the `pip` executable will be missing as the default pip
is installed only as `pip3`/`pip3.x`.

In order to always provide a `pip` executable, always reinstall pip.

* chore(ci): change default version to 3.12.3

Default to the latest stable version.
2024-05-09 08:58:58 -05:00
Matthieu Darbois
eb9433f569 feat: add ubuntu-24.04 (#269)
* feat: add ubuntu-24.04

* chore: drop support for Python 2.x builds
2024-05-08 08:33:12 -05:00
Matthieu Darbois
7c3d29faf2 fix: use --upgrade rather than --ignore-installed to upgrade pip (#268)
* fix: use `--upgrade` rather than `--ignore-installed` to upgrade pip

This removes left over files when upgrading pip.

* remove all installed python on macOS
2024-05-08 08:32:38 -05:00
github-actions[bot]
c03f98f186 Update versions-manifest (#266)
Co-authored-by: Service account <no-reply@microsoft.com>
2024-04-29 09:49:41 -05:00
Matthieu Darbois
2573fc9af9 fix: use environment variable for PIP_ROOT_USER_ACTION (#265)
* fix: error out on install failure in "Apply build artifact to the local machine" step

* fix: error out on pip installation / update failure

* fix: use environment variable for `PIP_ROOT_USER_ACTION`

This extends the fix from #259 since every platform for 3.8.10 / 3.9.13 has been rebuilt instead of just macOS arm64 being added.

The regression was introduced in #223
2024-04-29 08:32:44 -05:00
github-actions[bot]
b643f0d07f Update versions-manifest (#264)
Co-authored-by: Service account <no-reply@microsoft.com>
2024-04-25 09:25:58 -05:00
Matthieu Darbois
29394d0042 fix: use environment variable for PIP_ROOT_USER_ACTION (#259)
The option does not exists in every pip version, using the environment variable allows for pip not to fail in this case.
2024-04-24 22:44:10 -05:00
github-actions[bot]
3545308dfe Update versions-manifest (#263)
Co-authored-by: Service account <no-reply@microsoft.com>
2024-04-10 08:55:23 -05:00
github-actions[bot]
fa96e2aca9 Update versions-manifest (#262)
Co-authored-by: Service account <no-reply@microsoft.com>
2024-04-03 08:08:11 -05:00
github-actions[bot]
1dbece3419 Update versions-manifest (#261)
Co-authored-by: Service account <no-reply@microsoft.com>
2024-03-20 23:04:31 -05:00
13 changed files with 590 additions and 248 deletions

View File

@@ -1,11 +1,11 @@
name: Build Python package name: Build Python package
run-name: Generate Python ${{ inputs.VERSION || '3.11.0' }} run-name: Generate Python ${{ inputs.VERSION || '3.12.3' }}
on: on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
VERSION: VERSION:
description: 'Python version to build and upload' description: 'Python version to build and upload'
default: '3.11.0' default: '3.12.3'
required: true required: true
PUBLISH_RELEASES: PUBLISH_RELEASES:
description: 'Whether to publish releases' description: 'Whether to publish releases'
@@ -15,7 +15,7 @@ on:
PLATFORMS: PLATFORMS:
description: 'Platforms for execution in "os" or "os_arch" format (arch is "x64" by default)' description: 'Platforms for execution in "os" or "os_arch" format (arch is "x64" by default)'
required: true required: true
default: 'ubuntu-20.04,ubuntu-22.04,macos-11_x64,macos-11_arm64,windows-2019_x64,windows-2019_x86' default: 'ubuntu-20.04,ubuntu-22.04,ubuntu-22.04_arm64,ubuntu-24.04,macos-11_x64,macos-14_arm64,windows-2019_x64,windows-2019_x86,windows-2019_arm64'
pull_request: pull_request:
paths-ignore: paths-ignore:
- 'versions-manifest.json' - 'versions-manifest.json'
@@ -25,7 +25,7 @@ on:
- 'main' - 'main'
env: env:
VERSION: ${{ inputs.VERSION || '3.11.0' }} VERSION: ${{ inputs.VERSION || '3.12.3' }}
defaults: defaults:
run: run:
shell: pwsh shell: pwsh
@@ -39,22 +39,31 @@ jobs:
- name: Generate execution matrix - name: Generate execution matrix
id: generate-matrix id: generate-matrix
run: | run: |
[String[]]$configurations = "${{ inputs.platforms || 'ubuntu-20.04,ubuntu-22.04,macos-11,macos-11_arm64,windows-2019_x64,windows-2019_x86' }}".Split(",").Trim() [String[]]$configurations = "${{ inputs.platforms || 'ubuntu-20.04,ubuntu-22.04,ubuntu-22.04_arm64,ubuntu-24.04,macos-11,macos-14_arm64,windows-2019_x64,windows-2019_x86,windows-2019_arm64' }}".Split(",").Trim()
$matrix = @() $matrix = @()
foreach ($configuration in $configurations) { foreach ($configuration in $configurations) {
$parts = $configuration.Split("_") $parts = $configuration.Split("_")
$os = $parts[0] $os = $parts[0]
$arch = if ($parts[1]) {$parts[1]} else {"x64"} $arch = if ($parts[1]) {$parts[1]} else {"x64"}
switch -wildcard ($os) { switch -wildcard ($os) {
"*ubuntu*" { $platform = $os.Replace("ubuntu","linux")} "*ubuntu*" { $platform = $os.Replace("ubuntu","linux")}
"*macos*" { $platform = 'darwin' } "*macos*" { $platform = 'darwin' }
"*windows*" { $platform = 'win32' } "*windows*" { $platform = 'win32' }
} }
if ($configuration -eq "ubuntu-22.04_arm64") {
$os = "setup-actions-ubuntu-arm64-2-core"
}elseif ($configuration -eq "windows-2019_arm64") {
$os = "setup-actions-windows-arm64-4-core"
}
$matrix += @{ $matrix += @{
'platform' = $platform 'platform' = $platform
'os' = $os 'os' = $os
'arch' = $arch 'arch' = $arch
} }
} }
echo "matrix=$($matrix | ConvertTo-Json -Compress -AsArray)" >> $env:GITHUB_OUTPUT echo "matrix=$($matrix | ConvertTo-Json -Compress -AsArray)" >> $env:GITHUB_OUTPUT
@@ -67,24 +76,47 @@ jobs:
include: ${{ fromJson(needs.generate_matrix.outputs.matrix) }} include: ${{ fromJson(needs.generate_matrix.outputs.matrix) }}
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
env: env:
ARTIFACT_NAME: python-${{ inputs.VERSION || '3.11.0' }}-${{ matrix.platform }}-${{ matrix.arch }} ARTIFACT_NAME: python-${{ inputs.VERSION || '3.12.3' }}-${{ matrix.platform }}-${{ matrix.arch }}
steps: steps:
- name: Setup Environment on Windows ARM64 Runner
if: matrix.os == 'setup-actions-windows-arm64-4-core'
shell: powershell
run: |
# Install Chocolatey
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
echo "C:\ProgramData\Chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
# Install PowerShell
choco install powershell-core -y
echo "C:\Program Files\PowerShell\7" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
# Install Git
choco install git -y
echo "C:\Program Files\Git\cmd" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
# Install 7-Zip
choco install 7zip -y
echo "C:\ProgramData\chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- name: Check out repository code - name: Check out repository code
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
submodules: true submodules: true
- name: Build Python ${{ env.VERSION }} - name: Build Python ${{ env.VERSION }}
run: | run: |
./builders/build-python.ps1 -Version $env:VERSION ` ./builders/build-python.ps1 -Version $env:VERSION `
-Platform ${{ matrix.platform }} -Architecture ${{ matrix.arch }} -Platform ${{ matrix.platform }} -Architecture ${{ matrix.arch }}
- name: Publish artifact - name: Publish artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: ${{ env.ARTIFACT_NAME }} name: ${{ env.ARTIFACT_NAME }}
path: ${{ runner.temp }}/artifact path: ${{ runner.temp }}/artifact
if-no-files-found: error
test_python: test_python:
needs: [generate_matrix, build_python] needs: [generate_matrix, build_python]
@@ -94,21 +126,51 @@ jobs:
include: ${{ fromJson(needs.generate_matrix.outputs.matrix) }} include: ${{ fromJson(needs.generate_matrix.outputs.matrix) }}
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
env: env:
ARTIFACT_NAME: python-${{ inputs.VERSION || '3.11.0' }}-${{ matrix.platform }}-${{ matrix.arch }} ARTIFACT_NAME: python-${{ inputs.VERSION || '3.12.3' }}-${{ matrix.platform }}-${{ matrix.arch }}
steps: steps:
- name: Setup Environment on Windows ARM64 Runner
if: matrix.os == 'setup-actions-windows-arm64-4-core'
shell: powershell
run: |
# Install Chocolatey
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
echo "C:\ProgramData\Chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
# Install PowerShell
choco install powershell-core -y
echo "C:\Program Files\PowerShell\7" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
# Install Git
choco install git -y
echo "C:\Program Files\Git\cmd" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
# Install 7-Zip
choco install 7zip -y
echo "C:\ProgramData\chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- name: Check out repository code - name: Check out repository code
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
submodules: true submodules: true
- name: Fully cleanup the toolcache directory before testing - name: Fully cleanup the toolcache directory before testing
run: ./helpers/clean-toolcache.ps1 -ToolName "Python" run: ./helpers/clean-toolcache.ps1 -ToolName "Python"
- name: Delete macOS /Library/Frameworks/Python.framework
if: matrix.platform == 'darwin'
shell: bash
run: if [ -d /Library/Frameworks/Python.framework ]; then sudo rm -rf /Library/Frameworks/Python.framework; fi
- name: Download artifact - name: Download artifact
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
path: ${{ runner.temp }} name: ${{ env.ARTIFACT_NAME }}
path: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }}
- name: Extract files - name: Extract files
run: | run: |
@@ -123,6 +185,7 @@ jobs:
- name: Apply build artifact to the local machine - name: Apply build artifact to the local machine
run: | run: |
$PSNativeCommandUseErrorActionPreference = $true
if ('${{ matrix.platform }}' -eq 'win32') { if ('${{ matrix.platform }}' -eq 'win32') {
powershell ./setup.ps1 powershell ./setup.ps1
} else { } else {
@@ -132,7 +195,7 @@ jobs:
working-directory: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }} working-directory: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }}
- name: Setup Python ${{ env.VERSION }} - name: Setup Python ${{ env.VERSION }}
uses: actions/setup-python@v4 uses: actions/setup-python@v5
with: with:
python-version: ${{ env.VERSION }} python-version: ${{ env.VERSION }}
architecture: ${{ matrix.arch }} architecture: ${{ matrix.arch }}
@@ -147,10 +210,9 @@ jobs:
run: | run: |
$pythonLocation = which python $pythonLocation = which python
if ('${{ matrix.platform }}' -eq 'darwin') { otool -L $pythonLocation } else { ldd $pythonLocation } if ('${{ matrix.platform }}' -eq 'darwin') { otool -L $pythonLocation } else { ldd $pythonLocation }
- name: Run tests - name: Run tests
run: | run: |
Install-Module Pester -Force -Scope CurrentUser Install-Module Pester -Force -Scope CurrentUser -SkipPublisherCheck
Import-Module Pester Import-Module Pester
$pesterContainer = New-PesterContainer -Path './python-tests.ps1' -Data @{ $pesterContainer = New-PesterContainer -Path './python-tests.ps1' -Data @{
Version="${{ env.VERSION }}"; Version="${{ env.VERSION }}";
@@ -170,7 +232,7 @@ jobs:
needs: test_python needs: test_python
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/download-artifact@v3 - uses: actions/download-artifact@v4
- name: Publish Release ${{ env.VERSION }} - name: Publish Release ${{ env.VERSION }}
id: create_release id: create_release
@@ -182,7 +244,6 @@ jobs:
release_name: ${{ env.VERSION }} release_name: ${{ env.VERSION }}
body: | body: |
Python ${{ env.VERSION }} Python ${{ env.VERSION }}
- name: Generate hash for packages - name: Generate hash for packages
run: | run: |
$childItems = Get-Childitem -Path '.' $childItems = Get-Childitem -Path '.'
@@ -196,7 +257,7 @@ jobs:
} }
- name: Upload release assets - name: Upload release assets
uses: actions/github-script@v6 uses: actions/github-script@v7
with: with:
github-token: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
script: | script: |
@@ -220,7 +281,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Trigger "Create Pull Request" workflow - name: Trigger "Create Pull Request" workflow
uses: actions/github-script@v6 uses: actions/github-script@v7
with: with:
github-token: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
script: | script: |
@@ -230,4 +291,3 @@ jobs:
workflow_id: 'create-pr.yml', workflow_id: 'create-pr.yml',
ref: 'main' ref: 'main'
}); });

View File

@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
submodules: true submodules: true

View File

@@ -15,10 +15,10 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04] os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04]
python: [3.9.12, 3.10.8, 3.11.8] python: [3.9.13, 3.10.11, 3.11.8]
steps: steps:
- name: setup-python ${{ matrix.python }} - name: setup-python ${{ matrix.python }}
uses: actions/setup-python@v4 uses: actions/setup-python@v5
with: with:
python-version: ${{ matrix.python }} python-version: ${{ matrix.python }}

View File

@@ -1,168 +0,0 @@
using module "./python-builder.psm1"
class NixPythonBuilder : PythonBuilder {
<#
.SYNOPSIS
Base Python builder class for *Nix systems.
.DESCRIPTION
Contains methods that required to build Python artifact for *nix systems. Inherited from base PythonBuilder class.
.PARAMETER version
The version of Python that should be built.
.PARAMETER Platform
The type of platform for which Python should be built.
.PARAMETER PlatformVersion
The version of platform for which Python should be built.
.PARAMETER InstallationTemplateName
The name of template that will be used to create installation script for generated Python artifact.
.PARAMETER InstallationScriptName
The name of installation script that will be generated for Python artifact.
.PARAMETER OutputArtifactName
The name of archive with Python binaries that will be generated as part of Python artifact.
#>
[string] $InstallationTemplateName
[string] $InstallationScriptName
[string] $OutputArtifactName
NixPythonBuilder(
[semver] $version,
[string] $architecture,
[string] $platform
) : Base($version, $architecture, $platform) {
$this.InstallationTemplateName = "nix-setup-template.sh"
$this.InstallationScriptName = "setup.sh"
$this.OutputArtifactName = "python-$Version-$Platform-$Architecture.tar.gz"
}
[uri] GetSourceUri() {
<#
.SYNOPSIS
Get base Python URI and return complete URI for Python sources.
#>
$base = $this.GetBaseUri()
$versionName = $this.GetBaseVersion()
$nativeVersion = Convert-Version -version $this.Version
return "${base}/${versionName}/Python-${nativeVersion}.tgz"
}
[string] GetPythonBinary() {
<#
.SYNOPSIS
Return name of Python binary.
#>
if ($this.Version.Major -eq 2) { $pythonBinary = "python" } else { $pythonBinary = "python3" }
return $pythonBinary
}
[string] Download() {
<#
.SYNOPSIS
Download Python sources and extract them at temporary work folder. Returns expanded archive location path.
#>
$sourceUri = $this.GetSourceUri()
Write-Host "Sources URI: $sourceUri"
$archiveFilepath = Download-File -Uri $sourceUri -OutputFolder $this.WorkFolderLocation
$expandedSourceLocation = Join-Path -Path $this.TempFolderLocation -ChildPath "SourceCode"
New-Item -Path $expandedSourceLocation -ItemType Directory
Extract-TarArchive -ArchivePath $archiveFilepath -OutputDirectory $expandedSourceLocation
Write-Debug "Done; Sources location: $expandedSourceLocation"
return $expandedSourceLocation
}
[void] CreateInstallationScript() {
<#
.SYNOPSIS
Create Python artifact installation script based on template specified in InstallationTemplateName property.
#>
$installationScriptLocation = New-Item -Path $this.WorkFolderLocation -Name $this.InstallationScriptName -ItemType File
$installationTemplateLocation = Join-Path -Path $this.InstallationTemplatesLocation -ChildPath $this.InstallationTemplateName
$installationTemplateContent = Get-Content -Path $installationTemplateLocation -Raw
$variablesToReplace = @{
"{{__VERSION_FULL__}}" = $this.Version;
}
$variablesToReplace.keys | ForEach-Object { $installationTemplateContent = $installationTemplateContent.Replace($_, $variablesToReplace[$_]) }
$installationTemplateContent | Out-File -FilePath $installationScriptLocation
Write-Debug "Done; Installation script location: $installationScriptLocation)"
}
[void] Make() {
<#
.SYNOPSIS
Executes "make" and "make install" commands for configured build sources. Make output will be writen in build_output.txt located in artifact location folder.
#>
Write-Debug "make Python $($this.Version)-$($this.Architecture) $($this.Platform)"
$buildOutputLocation = New-Item -Path $this.WorkFolderLocation -Name "build_output.txt" -ItemType File
Execute-Command -Command "make 2>&1 | tee $buildOutputLocation" -ErrorAction Continue
Execute-Command -Command "make install" -ErrorAction Continue
Write-Debug "Done; Make log location: $buildOutputLocation"
}
[void] CopyBuildResults() {
$buildFolder = $this.GetFullPythonToolcacheLocation()
Move-Item -Path "$buildFolder/*" -Destination $this.WorkFolderLocation
}
[void] ArchiveArtifact() {
$OutputPath = Join-Path $this.ArtifactFolderLocation $this.OutputArtifactName
Create-TarArchive -SourceFolder $this.WorkFolderLocation -ArchivePath $OutputPath
}
[void] Build() {
<#
.SYNOPSIS
Build Python artifact from sources.
#>
Write-Host "Prepare Python Hostedtoolcache location..."
$this.PreparePythonToolcacheLocation()
Write-Host "Prepare system environment..."
$this.PrepareEnvironment()
Write-Host "Download Python $($this.Version)[$($this.Architecture)] sources..."
$sourcesLocation = $this.Download()
Push-Location -Path $sourcesLocation
Write-Host "Configure for $($this.Platform)..."
$this.Configure()
Write-Host "Make for $($this.Platform)..."
$this.Make()
Pop-Location
Write-Host "Generate structure dump"
New-ToolStructureDump -ToolPath $this.GetFullPythonToolcacheLocation() -OutputFolder $this.WorkFolderLocation
Write-Host "Copying build results to destination location"
$this.CopyBuildResults()
Write-Host "Create installation script..."
$this.CreateInstallationScript()
Write-Host "Archive artifact..."
$this.ArchiveArtifact()
}
}

View File

@@ -37,16 +37,9 @@ class UbuntuPythonBuilder : NixPythonBuilder {
$configureString += " --enable-shared" $configureString += " --enable-shared"
$configureString += " --enable-optimizations" $configureString += " --enable-optimizations"
### Compile with ucs4 for Python 2.x. On 3.x, ucs4 is enabled by default ### Compile with support of loadable sqlite extensions.
if ($this.Version -lt "3.0.0") {
$configureString += " --enable-unicode=ucs4"
}
### 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) ### 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"
$configureString += " --enable-loadable-sqlite-extensions"
}
Write-Host "The passed configure options are: " Write-Host "The passed configure options are: "
Write-Host $configureString Write-Host $configureString
@@ -60,17 +53,13 @@ class UbuntuPythonBuilder : NixPythonBuilder {
Prepare system environment by installing dependencies and required packages. Prepare system environment by installing dependencies and required packages.
#> #>
if (($this.Version -gt "3.0.0") -and ($this.Version -lt "3.5.3")) { if ($this.Version -lt "3.5.3") {
Write-Host "Python3 versions lower than 3.5.3 are not supported" Write-Host "Python versions lower than 3.5.3 are not supported"
exit 1 exit 1
} }
### Compile with tkinter support ### Compile with tkinter support
if ($this.Version -gt "3.0.0") { $tkinterInstallString = "sudo apt-get install -y --allow-downgrades python3-tk tk-dev"
$tkinterInstallString = "sudo apt-get install -y --allow-downgrades python3-tk tk-dev"
} else {
$tkinterInstallString = "sudo apt install -y python-tk tk-dev"
}
Execute-Command -Command "sudo apt-get update" Execute-Command -Command "sudo apt-get update"
Execute-Command -Command $tkinterInstallString Execute-Command -Command $tkinterInstallString
@@ -85,7 +74,8 @@ class UbuntuPythonBuilder : NixPythonBuilder {
"libsqlite3-dev", "libsqlite3-dev",
"libncursesw5-dev", "libncursesw5-dev",
"libreadline-dev", "libreadline-dev",
"libgdbm-dev" "libgdbm-dev",
"liblzma-dev"
) | ForEach-Object { ) | ForEach-Object {
Execute-Command -Command "sudo apt install -y $_" Execute-Command -Command "sudo apt install -y $_"
} }

View File

@@ -1,3 +1,4 @@
using module "./python-builder.psm1" using module "./python-builder.psm1"
class WinPythonBuilder : PythonBuilder { class WinPythonBuilder : PythonBuilder {
@@ -60,8 +61,11 @@ class WinPythonBuilder : PythonBuilder {
} else { } else {
$ArchitectureExtension = ".amd64" $ArchitectureExtension = ".amd64"
} }
}elseif ($this.Architecture -eq "arm64") {
$ArchitectureExtension = "-arm64"
} }
return $ArchitectureExtension return $ArchitectureExtension
} }

View File

@@ -69,8 +69,9 @@ fi
chmod +x ../python $PYTHON_MAJOR $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJOR_MINOR python chmod +x ../python $PYTHON_MAJOR $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJOR_MINOR python
echo "Upgrading pip..." echo "Upgrading pip..."
export PIP_ROOT_USER_ACTION=ignore
./python -m ensurepip ./python -m ensurepip
./python -m pip install --ignore-installed pip --disable-pip-version-check --no-warn-script-location --root-user-action=ignore ./python -m pip install --upgrade --force-reinstall pip --disable-pip-version-check --no-warn-script-location
echo "Install OpenSSL certificates" echo "Install OpenSSL certificates"
sh -e "${PYTHON_APPLICATION_PATH}/Install Certificates.command" sh -e "${PYTHON_APPLICATION_PATH}/Install Certificates.command"

View File

@@ -1,6 +1,7 @@
set -e set -e
PYTHON_FULL_VERSION="{{__VERSION_FULL__}}" PYTHON_FULL_VERSION="{{__VERSION_FULL__}}"
ARCH="{{__ARCH__}}"
MAJOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 1) MAJOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 1)
MINOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 2) MINOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 2)
@@ -17,7 +18,7 @@ fi
PYTHON_TOOLCACHE_PATH=$TOOLCACHE_ROOT/Python PYTHON_TOOLCACHE_PATH=$TOOLCACHE_ROOT/Python
PYTHON_TOOLCACHE_VERSION_PATH=$PYTHON_TOOLCACHE_PATH/$PYTHON_FULL_VERSION PYTHON_TOOLCACHE_VERSION_PATH=$PYTHON_TOOLCACHE_PATH/$PYTHON_FULL_VERSION
PYTHON_TOOLCACHE_VERSION_ARCH_PATH=$PYTHON_TOOLCACHE_VERSION_PATH/x64 PYTHON_TOOLCACHE_VERSION_ARCH_PATH=$PYTHON_TOOLCACHE_VERSION_PATH/$ARCH
echo "Check if Python hostedtoolcache folder exist..." echo "Check if Python hostedtoolcache folder exist..."
if [ ! -d $PYTHON_TOOLCACHE_PATH ]; then if [ ! -d $PYTHON_TOOLCACHE_PATH ]; then
@@ -49,8 +50,9 @@ fi
chmod +x ../python $PYTHON_MAJOR $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJORMINOR python chmod +x ../python $PYTHON_MAJOR $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJORMINOR python
echo "Upgrading pip..." echo "Upgrading pip..."
export PIP_ROOT_USER_ACTION=ignore
./python -m ensurepip ./python -m ensurepip
./python -m pip install --ignore-installed pip --disable-pip-version-check --no-warn-script-location --root-user-action=ignore ./python -m pip install --upgrade --force-reinstall pip --disable-pip-version-check --no-warn-script-location
echo "Create complete file" echo "Create complete file"
touch $PYTHON_TOOLCACHE_VERSION_PATH/x64.complete touch $PYTHON_TOOLCACHE_VERSION_PATH/$ARCH.complete

View File

@@ -133,8 +133,12 @@ if ($MajorVersion -ne "2") {
} }
Write-Host "Install and upgrade Pip" Write-Host "Install and upgrade Pip"
$Env:PIP_ROOT_USER_ACTION = "ignore"
$PythonExePath = Join-Path -Path $PythonArchPath -ChildPath "python.exe" $PythonExePath = Join-Path -Path $PythonArchPath -ChildPath "python.exe"
cmd.exe /c "$PythonExePath -m ensurepip && $PythonExePath -m pip install --upgrade pip --no-warn-script-location --root-user-action=ignore" cmd.exe /c "$PythonExePath -m ensurepip && $PythonExePath -m pip install --upgrade --force-reinstall pip --no-warn-script-location"
if ($LASTEXITCODE -ne 0) {
Throw "Error happened during pip installation / upgrade"
}
Write-Host "Create complete file" Write-Host "Create complete file"
New-Item -ItemType File -Path $PythonVersionPath -Name "$Architecture.complete" | Out-Null New-Item -ItemType File -Path $PythonVersionPath -Name "$Architecture.complete" | Out-Null

View File

@@ -103,4 +103,8 @@ Describe "Tests" {
It "Check urlopen with HTTPS works" { It "Check urlopen with HTTPS works" {
"python ./sources/python-urlopen-https.py" | Should -ReturnZeroExitCode "python ./sources/python-urlopen-https.py" | Should -ReturnZeroExitCode
} }
It "Check a single dist-info per distribution is present" {
"python ./sources/dist-info.py" | Should -ReturnZeroExitCode
}
} }

View File

@@ -0,0 +1,24 @@
import glob
import os.path
import sysconfig
from collections import defaultdict
def check_dist_info():
paths = set([sysconfig.get_path("purelib"), sysconfig.get_path("platlib")])
versions = defaultdict(list)
for path in paths:
pattern = os.path.join(path, "*.dist-info")
for dist_info in glob.glob(pattern):
name = os.path.basename(dist_info).split("-", maxsplit=1)[0]
versions[name].append(dist_info)
exit_code = 0
for name in versions:
if len(versions[name]) > 1:
print("multiple dist-info found for {}: {}".format(name, versions[name]))
exit_code = 1
exit(exit_code)
if __name__ == "__main__":
check_dist_info()

View File

@@ -28,7 +28,7 @@ if os_type == 'Darwin': expected_ld_library_extension = 'dylib'
if pkg_installer: if pkg_installer:
expected_lib_dir_path = f'/Library/Frameworks/Python.framework/Versions/{version_major}.{version_minor}/lib' expected_lib_dir_path = f'/Library/Frameworks/Python.framework/Versions/{version_major}.{version_minor}/lib'
else: else:
expected_lib_dir_path = f'{os.getenv("AGENT_TOOLSDIRECTORY")}/Python/{version}/x64/lib' expected_lib_dir_path = f'{os.getenv("AGENT_TOOLSDIRECTORY")}/Python/{version}/{architecture}/lib'
# Check modules # Check modules
### Validate libraries path ### Validate libraries path

View File

@@ -1,4 +1,161 @@
[ [
{
"version": "3.13.0-beta.2",
"stable": false,
"release_url": "https://github.com/actions/python-versions/releases/tag/3.13.0-beta.2-9601313347",
"files": [
{
"filename": "python-3.13.0-beta.2-darwin-arm64.tar.gz",
"arch": "arm64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.2-9601313347/python-3.13.0-beta.2-darwin-arm64.tar.gz"
},
{
"filename": "python-3.13.0-beta.2-darwin-x64.tar.gz",
"arch": "x64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.2-9601313347/python-3.13.0-beta.2-darwin-x64.tar.gz"
},
{
"filename": "python-3.13.0-beta.2-linux-20.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "20.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.2-9601313347/python-3.13.0-beta.2-linux-20.04-x64.tar.gz"
},
{
"filename": "python-3.13.0-beta.2-linux-22.04-arm64.tar.gz",
"arch": "arm64",
"platform": "linux",
"platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.2-9601313347/python-3.13.0-beta.2-linux-22.04-arm64.tar.gz"
},
{
"filename": "python-3.13.0-beta.2-linux-22.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.2-9601313347/python-3.13.0-beta.2-linux-22.04-x64.tar.gz"
},
{
"filename": "python-3.13.0-beta.2-linux-24.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "24.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.2-9601313347/python-3.13.0-beta.2-linux-24.04-x64.tar.gz"
},
{
"filename": "python-3.13.0-beta.2-win32-x64.zip",
"arch": "x64",
"platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.2-9601313347/python-3.13.0-beta.2-win32-x64.zip"
},
{
"filename": "python-3.13.0-beta.2-win32-x86.zip",
"arch": "x86",
"platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.2-9601313347/python-3.13.0-beta.2-win32-x86.zip"
}
]
},
{
"version": "3.13.0-beta.1",
"stable": false,
"release_url": "https://github.com/actions/python-versions/releases/tag/3.13.0-beta.1-9019422448",
"files": [
{
"filename": "python-3.13.0-beta.1-darwin-arm64.tar.gz",
"arch": "arm64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.1-9019422448/python-3.13.0-beta.1-darwin-arm64.tar.gz"
},
{
"filename": "python-3.13.0-beta.1-darwin-x64.tar.gz",
"arch": "x64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.1-9019422448/python-3.13.0-beta.1-darwin-x64.tar.gz"
},
{
"filename": "python-3.13.0-beta.1-linux-20.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "20.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.1-9019422448/python-3.13.0-beta.1-linux-20.04-x64.tar.gz"
},
{
"filename": "python-3.13.0-beta.1-linux-22.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.1-9019422448/python-3.13.0-beta.1-linux-22.04-x64.tar.gz"
},
{
"filename": "python-3.13.0-beta.1-linux-24.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "24.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.1-9019422448/python-3.13.0-beta.1-linux-24.04-x64.tar.gz"
},
{
"filename": "python-3.13.0-beta.1-win32-x64.zip",
"arch": "x64",
"platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.1-9019422448/python-3.13.0-beta.1-win32-x64.zip"
},
{
"filename": "python-3.13.0-beta.1-win32-x86.zip",
"arch": "x86",
"platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-beta.1-9019422448/python-3.13.0-beta.1-win32-x86.zip"
}
]
},
{
"version": "3.13.0-alpha.6",
"stable": false,
"release_url": "https://github.com/actions/python-versions/releases/tag/3.13.0-alpha.6-8625706540",
"files": [
{
"filename": "python-3.13.0-alpha.6-darwin-arm64.tar.gz",
"arch": "arm64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-alpha.6-8625706540/python-3.13.0-alpha.6-darwin-arm64.tar.gz"
},
{
"filename": "python-3.13.0-alpha.6-darwin-x64.tar.gz",
"arch": "x64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-alpha.6-8625706540/python-3.13.0-alpha.6-darwin-x64.tar.gz"
},
{
"filename": "python-3.13.0-alpha.6-linux-20.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "20.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-alpha.6-8625706540/python-3.13.0-alpha.6-linux-20.04-x64.tar.gz"
},
{
"filename": "python-3.13.0-alpha.6-linux-22.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-alpha.6-8625706540/python-3.13.0-alpha.6-linux-22.04-x64.tar.gz"
},
{
"filename": "python-3.13.0-alpha.6-win32-x64.zip",
"arch": "x64",
"platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-alpha.6-8625706540/python-3.13.0-alpha.6-win32-x64.zip"
},
{
"filename": "python-3.13.0-alpha.6-win32-x86.zip",
"arch": "x86",
"platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.13.0-alpha.6-8625706540/python-3.13.0-alpha.6-win32-x86.zip"
}
]
},
{ {
"version": "3.13.0-alpha.5", "version": "3.13.0-alpha.5",
"stable": false, "stable": false,
@@ -224,6 +381,117 @@
} }
] ]
}, },
{
"version": "3.12.4",
"stable": true,
"release_url": "https://github.com/actions/python-versions/releases/tag/3.12.4-9601301881",
"files": [
{
"filename": "python-3.12.4-darwin-arm64.tar.gz",
"arch": "arm64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.4-9601301881/python-3.12.4-darwin-arm64.tar.gz"
},
{
"filename": "python-3.12.4-darwin-x64.tar.gz",
"arch": "x64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.4-9601301881/python-3.12.4-darwin-x64.tar.gz"
},
{
"filename": "python-3.12.4-linux-20.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "20.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.4-9601301881/python-3.12.4-linux-20.04-x64.tar.gz"
},
{
"filename": "python-3.12.4-linux-22.04-arm64.tar.gz",
"arch": "arm64",
"platform": "linux",
"platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.4-9601301881/python-3.12.4-linux-22.04-arm64.tar.gz"
},
{
"filename": "python-3.12.4-linux-22.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.4-9601301881/python-3.12.4-linux-22.04-x64.tar.gz"
},
{
"filename": "python-3.12.4-linux-24.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "24.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.4-9601301881/python-3.12.4-linux-24.04-x64.tar.gz"
},
{
"filename": "python-3.12.4-win32-x64.zip",
"arch": "x64",
"platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.4-9601301881/python-3.12.4-win32-x64.zip"
},
{
"filename": "python-3.12.4-win32-x86.zip",
"arch": "x86",
"platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.4-9601301881/python-3.12.4-win32-x86.zip"
}
]
},
{
"version": "3.12.3",
"stable": true,
"release_url": "https://github.com/actions/python-versions/releases/tag/3.12.3-9019007027",
"files": [
{
"filename": "python-3.12.3-darwin-arm64.tar.gz",
"arch": "arm64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.3-9019007027/python-3.12.3-darwin-arm64.tar.gz"
},
{
"filename": "python-3.12.3-darwin-x64.tar.gz",
"arch": "x64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.3-9019007027/python-3.12.3-darwin-x64.tar.gz"
},
{
"filename": "python-3.12.3-linux-20.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "20.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.3-9019007027/python-3.12.3-linux-20.04-x64.tar.gz"
},
{
"filename": "python-3.12.3-linux-22.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.3-9019007027/python-3.12.3-linux-22.04-x64.tar.gz"
},
{
"filename": "python-3.12.3-linux-24.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "24.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.3-9019007027/python-3.12.3-linux-24.04-x64.tar.gz"
},
{
"filename": "python-3.12.3-win32-x64.zip",
"arch": "x64",
"platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.3-9019007027/python-3.12.3-win32-x64.zip"
},
{
"filename": "python-3.12.3-win32-x86.zip",
"arch": "x86",
"platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.3-9019007027/python-3.12.3-win32-x86.zip"
}
]
},
{ {
"version": "3.12.2", "version": "3.12.2",
"stable": true, "stable": true,
@@ -995,6 +1263,65 @@
} }
] ]
}, },
{
"version": "3.11.9",
"stable": true,
"release_url": "https://github.com/actions/python-versions/releases/tag/3.11.9-9600593881",
"files": [
{
"filename": "python-3.11.9-darwin-arm64.tar.gz",
"arch": "arm64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.9-9600593881/python-3.11.9-darwin-arm64.tar.gz"
},
{
"filename": "python-3.11.9-darwin-x64.tar.gz",
"arch": "x64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.9-9600593881/python-3.11.9-darwin-x64.tar.gz"
},
{
"filename": "python-3.11.9-linux-20.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "20.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.9-9600593881/python-3.11.9-linux-20.04-x64.tar.gz"
},
{
"filename": "python-3.11.9-linux-22.04-arm64.tar.gz",
"arch": "arm64",
"platform": "linux",
"platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.9-9600593881/python-3.11.9-linux-22.04-arm64.tar.gz"
},
{
"filename": "python-3.11.9-linux-22.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.9-9600593881/python-3.11.9-linux-22.04-x64.tar.gz"
},
{
"filename": "python-3.11.9-linux-24.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "24.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.9-9600593881/python-3.11.9-linux-24.04-x64.tar.gz"
},
{
"filename": "python-3.11.9-win32-x64.zip",
"arch": "x64",
"platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.9-9600593881/python-3.11.9-win32-x64.zip"
},
{
"filename": "python-3.11.9-win32-x86.zip",
"arch": "x86",
"platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.9-9600593881/python-3.11.9-win32-x86.zip"
}
]
},
{ {
"version": "3.11.8", "version": "3.11.8",
"stable": true, "stable": true,
@@ -1998,6 +2325,47 @@
} }
] ]
}, },
{
"version": "3.10.14",
"stable": true,
"release_url": "https://github.com/actions/python-versions/releases/tag/3.10.14-9599980810",
"files": [
{
"filename": "python-3.10.14-darwin-x64.tar.gz",
"arch": "x64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.10.14-9599980810/python-3.10.14-darwin-x64.tar.gz"
},
{
"filename": "python-3.10.14-linux-20.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "20.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.10.14-9599980810/python-3.10.14-linux-20.04-x64.tar.gz"
},
{
"filename": "python-3.10.14-linux-22.04-arm64.tar.gz",
"arch": "arm64",
"platform": "linux",
"platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.10.14-9599980810/python-3.10.14-linux-22.04-arm64.tar.gz"
},
{
"filename": "python-3.10.14-linux-22.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.10.14-9599980810/python-3.10.14-linux-22.04-x64.tar.gz"
},
{
"filename": "python-3.10.14-linux-24.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "24.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.10.14-9599980810/python-3.10.14-linux-24.04-x64.tar.gz"
}
]
},
{ {
"version": "3.10.13", "version": "3.10.13",
"stable": true, "stable": true,
@@ -3152,6 +3520,47 @@
} }
] ]
}, },
{
"version": "3.9.19",
"stable": true,
"release_url": "https://github.com/actions/python-versions/releases/tag/3.9.19-9599861319",
"files": [
{
"filename": "python-3.9.19-darwin-x64.tar.gz",
"arch": "x64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.19-9599861319/python-3.9.19-darwin-x64.tar.gz"
},
{
"filename": "python-3.9.19-linux-20.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "20.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.19-9599861319/python-3.9.19-linux-20.04-x64.tar.gz"
},
{
"filename": "python-3.9.19-linux-22.04-arm64.tar.gz",
"arch": "arm64",
"platform": "linux",
"platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.19-9599861319/python-3.9.19-linux-22.04-arm64.tar.gz"
},
{
"filename": "python-3.9.19-linux-22.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.19-9599861319/python-3.9.19-linux-22.04-x64.tar.gz"
},
{
"filename": "python-3.9.19-linux-24.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "24.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.19-9599861319/python-3.9.19-linux-24.04-x64.tar.gz"
}
]
},
{ {
"version": "3.9.18", "version": "3.9.18",
"stable": true, "stable": true,
@@ -3311,46 +3720,45 @@
{ {
"version": "3.9.13", "version": "3.9.13",
"stable": true, "stable": true,
"release_url": "https://github.com/actions/python-versions/releases/tag/3.9.13-2717571420", "release_url": "https://github.com/actions/python-versions/releases/tag/3.9.13-8879985561",
"files": [ "files": [
{
"filename": "python-3.9.13-darwin-arm64.tar.gz",
"arch": "arm64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.13-8879985561/python-3.9.13-darwin-arm64.tar.gz"
},
{ {
"filename": "python-3.9.13-darwin-x64.tar.gz", "filename": "python-3.9.13-darwin-x64.tar.gz",
"arch": "x64", "arch": "x64",
"platform": "darwin", "platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.13-2717571420/python-3.9.13-darwin-x64.tar.gz" "download_url": "https://github.com/actions/python-versions/releases/download/3.9.13-8879985561/python-3.9.13-darwin-x64.tar.gz"
},
{
"filename": "python-3.9.13-linux-18.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "18.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.13-2717571420/python-3.9.13-linux-18.04-x64.tar.gz"
}, },
{ {
"filename": "python-3.9.13-linux-20.04-x64.tar.gz", "filename": "python-3.9.13-linux-20.04-x64.tar.gz",
"arch": "x64", "arch": "x64",
"platform": "linux", "platform": "linux",
"platform_version": "20.04", "platform_version": "20.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.13-2717571420/python-3.9.13-linux-20.04-x64.tar.gz" "download_url": "https://github.com/actions/python-versions/releases/download/3.9.13-8879985561/python-3.9.13-linux-20.04-x64.tar.gz"
}, },
{ {
"filename": "python-3.9.13-linux-22.04-x64.tar.gz", "filename": "python-3.9.13-linux-22.04-x64.tar.gz",
"arch": "x64", "arch": "x64",
"platform": "linux", "platform": "linux",
"platform_version": "22.04", "platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.13-2717571420/python-3.9.13-linux-22.04-x64.tar.gz" "download_url": "https://github.com/actions/python-versions/releases/download/3.9.13-8879985561/python-3.9.13-linux-22.04-x64.tar.gz"
}, },
{ {
"filename": "python-3.9.13-win32-x64.zip", "filename": "python-3.9.13-win32-x64.zip",
"arch": "x64", "arch": "x64",
"platform": "win32", "platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.13-2717571420/python-3.9.13-win32-x64.zip" "download_url": "https://github.com/actions/python-versions/releases/download/3.9.13-8879985561/python-3.9.13-win32-x64.zip"
}, },
{ {
"filename": "python-3.9.13-win32-x86.zip", "filename": "python-3.9.13-win32-x86.zip",
"arch": "x86", "arch": "x86",
"platform": "win32", "platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.13-2717571420/python-3.9.13-win32-x86.zip" "download_url": "https://github.com/actions/python-versions/releases/download/3.9.13-8879985561/python-3.9.13-win32-x86.zip"
} }
] ]
}, },
@@ -4189,27 +4597,41 @@
{ {
"version": "3.8.18", "version": "3.8.18",
"stable": true, "stable": true,
"release_url": "https://github.com/actions/python-versions/releases/tag/3.8.18-5997368067", "release_url": "https://github.com/actions/python-versions/releases/tag/3.8.18-9599280229",
"files": [ "files": [
{ {
"filename": "python-3.8.18-darwin-x64.tar.gz", "filename": "python-3.8.18-darwin-x64.tar.gz",
"arch": "x64", "arch": "x64",
"platform": "darwin", "platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.18-5997368067/python-3.8.18-darwin-x64.tar.gz" "download_url": "https://github.com/actions/python-versions/releases/download/3.8.18-9599280229/python-3.8.18-darwin-x64.tar.gz"
}, },
{ {
"filename": "python-3.8.18-linux-20.04-x64.tar.gz", "filename": "python-3.8.18-linux-20.04-x64.tar.gz",
"arch": "x64", "arch": "x64",
"platform": "linux", "platform": "linux",
"platform_version": "20.04", "platform_version": "20.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.18-5997368067/python-3.8.18-linux-20.04-x64.tar.gz" "download_url": "https://github.com/actions/python-versions/releases/download/3.8.18-9599280229/python-3.8.18-linux-20.04-x64.tar.gz"
},
{
"filename": "python-3.8.18-linux-22.04-arm64.tar.gz",
"arch": "arm64",
"platform": "linux",
"platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.18-9599280229/python-3.8.18-linux-22.04-arm64.tar.gz"
}, },
{ {
"filename": "python-3.8.18-linux-22.04-x64.tar.gz", "filename": "python-3.8.18-linux-22.04-x64.tar.gz",
"arch": "x64", "arch": "x64",
"platform": "linux", "platform": "linux",
"platform_version": "22.04", "platform_version": "22.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.18-5997368067/python-3.8.18-linux-22.04-x64.tar.gz" "download_url": "https://github.com/actions/python-versions/releases/download/3.8.18-9599280229/python-3.8.18-linux-22.04-x64.tar.gz"
},
{
"filename": "python-3.8.18-linux-24.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "24.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.18-9599280229/python-3.8.18-linux-24.04-x64.tar.gz"
} }
] ]
}, },
@@ -4440,39 +4862,38 @@
{ {
"version": "3.8.10", "version": "3.8.10",
"stable": true, "stable": true,
"release_url": "https://github.com/actions/python-versions/releases/tag/3.8.10-117959", "release_url": "https://github.com/actions/python-versions/releases/tag/3.8.10-8879978422",
"files": [ "files": [
{
"filename": "python-3.8.10-darwin-arm64.tar.gz",
"arch": "arm64",
"platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.10-8879978422/python-3.8.10-darwin-arm64.tar.gz"
},
{ {
"filename": "python-3.8.10-darwin-x64.tar.gz", "filename": "python-3.8.10-darwin-x64.tar.gz",
"arch": "x64", "arch": "x64",
"platform": "darwin", "platform": "darwin",
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.10-117959/python-3.8.10-darwin-x64.tar.gz" "download_url": "https://github.com/actions/python-versions/releases/download/3.8.10-8879978422/python-3.8.10-darwin-x64.tar.gz"
},
{
"filename": "python-3.8.10-linux-18.04-x64.tar.gz",
"arch": "x64",
"platform": "linux",
"platform_version": "18.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.10-117959/python-3.8.10-linux-18.04-x64.tar.gz"
}, },
{ {
"filename": "python-3.8.10-linux-20.04-x64.tar.gz", "filename": "python-3.8.10-linux-20.04-x64.tar.gz",
"arch": "x64", "arch": "x64",
"platform": "linux", "platform": "linux",
"platform_version": "20.04", "platform_version": "20.04",
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.10-117959/python-3.8.10-linux-20.04-x64.tar.gz" "download_url": "https://github.com/actions/python-versions/releases/download/3.8.10-8879978422/python-3.8.10-linux-20.04-x64.tar.gz"
}, },
{ {
"filename": "python-3.8.10-win32-x64.zip", "filename": "python-3.8.10-win32-x64.zip",
"arch": "x64", "arch": "x64",
"platform": "win32", "platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.10-117959/python-3.8.10-win32-x64.zip" "download_url": "https://github.com/actions/python-versions/releases/download/3.8.10-8879978422/python-3.8.10-win32-x64.zip"
}, },
{ {
"filename": "python-3.8.10-win32-x86.zip", "filename": "python-3.8.10-win32-x86.zip",
"arch": "x86", "arch": "x86",
"platform": "win32", "platform": "win32",
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.10-117959/python-3.8.10-win32-x86.zip" "download_url": "https://github.com/actions/python-versions/releases/download/3.8.10-8879978422/python-3.8.10-win32-x86.zip"
} }
] ]
}, },