Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync from upstream #1

Open
wants to merge 376 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
376 commits
Select commit Hold shift + click to select a range
e385184
Update python-builder.psm1
mikhailkoliada Jan 15, 2022
af28f23
Update versions-manifest (#133)
github-actions[bot] Jan 16, 2022
a5914bf
Merge pull request #132 from mikhailkoliada/python_versions_gh_migrate
miketimofeev Jan 17, 2022
9975c96
Migrate get-python-packages to gh
shilovmaksim Jan 21, 2022
ba826d5
Correct names for workflow, jobs and workflows to trigger
shilovmaksim Jan 21, 2022
133a2c6
Migrate build pipeline to Pester v5
Jan 21, 2022
811f1bc
install latest pester
Jan 21, 2022
765df7c
Merge pull request #134 from shilovmaksim/shilovmaksim/get-python-ver…
miketimofeev Jan 24, 2022
135879d
assign results to a var
mikhailkoliada Jan 24, 2022
7e70acf
Merge pull request #135 from mikhailkoliada/migrate_to_pester5
miketimofeev Jan 25, 2022
8beb652
extend check for all alpha versions of 3.11 python (#136)
dmitry-shibanov Jan 27, 2022
b275162
Update versions-manifest (#138)
github-actions[bot] Jan 27, 2022
8cfdc61
Update versions-manifest (#139)
github-actions[bot] Feb 3, 2022
210583e
Update versions-manifest (#140)
github-actions[bot] Feb 4, 2022
797eb71
Update versions-manifest (#141)
github-actions[bot] Feb 7, 2022
3ec6c98
Add ability to choose platform to build Python
nikolai-frolov Feb 16, 2022
588fb9d
Update generate_matrix job to allow execution via PR
nikolai-frolov Feb 17, 2022
044e281
Minor corrections according to comments
nikolai-frolov Feb 18, 2022
e74fccf
Adding python-versions-runner workflow (#137)
shilovmaksim Feb 18, 2022
79e9e3b
Merge pull request #143 from nikolai-frolov/users/v-nfrolov/update-py…
miketimofeev Feb 21, 2022
ba3a558
Remove AzDo related code (#144)
shilovmaksim Feb 25, 2022
0cbb516
Update versions-manifest
459680 Mar 17, 2022
cd04e6b
Merge pull request #142 from actions/update-versions-manifest-file
ethanchewy Mar 17, 2022
2552b10
Update versions-manifest
459680 Mar 17, 2022
386cf09
Merge pull request #146 from actions/update-versions-manifest-file
ethanchewy Mar 17, 2022
ce7d569
Update versions-manifest
459680 Mar 19, 2022
3d1cc99
Merge pull request #147 from actions/update-versions-manifest-file
miketimofeev Mar 20, 2022
153004c
Update versions-manifest
459680 Mar 21, 2022
b4ee3eb
Merge pull request #148 from actions/update-versions-manifest-file
ethanchewy Mar 21, 2022
cf55c35
Update versions-manifest
459680 Mar 21, 2022
8bea4cf
Merge pull request #149 from actions/update-versions-manifest-file
ethanchewy Mar 21, 2022
ce8fa50
Update versions-manifest
459680 Mar 21, 2022
78b21b7
Merge pull request #150 from actions/update-versions-manifest-file
ethanchewy Mar 21, 2022
daf0a68
Update versions-manifest
459680 Mar 24, 2022
5ce03b9
Merge pull request #151 from actions/update-versions-manifest-file
ethanchewy Mar 24, 2022
cda7fd9
Update versions-manifest
459680 Mar 24, 2022
5f1fbb8
Merge pull request #152 from actions/update-versions-manifest-file
miketimofeev Mar 24, 2022
18aeba4
Update versions-manifest
459680 Mar 24, 2022
769f682
Merge branch 'main' into update-versions-manifest-file
ethanchewy Mar 24, 2022
7e0253f
Merge pull request #153 from actions/update-versions-manifest-file
ethanchewy Mar 24, 2022
7d68c84
Create codeql-analysis.yml
aloviedo Mar 30, 2022
a1129e9
Exclude tkinter and turtle for Python 3.11.0 alpha7 on Ubuntu 18.04
Apr 11, 2022
fb0cb92
Merge pull request #155 from vsafonkin/v-vsafonkin/python-3.11.0-alpha-7
Apr 12, 2022
c58bf9c
Update versions-manifest
459680 Apr 15, 2022
dfcce03
Merge pull request #157 from actions/update-versions-manifest-file
marko-zivic-93 Apr 15, 2022
2b001ef
Update versions-manifest
459680 Apr 29, 2022
1b8db98
Merge pull request #159 from actions/update-versions-manifest-file
marko-zivic-93 Apr 29, 2022
8fd7008
Add Ubuntu22.04 support
mikhailkoliada May 3, 2022
53bd6a1
Merge pull request #160 from mikhailkoliada/add_ubuntu22-04
miketimofeev May 4, 2022
8f6a357
Update versions-manifest
459680 May 4, 2022
b104d17
Merge pull request #161 from actions/update-versions-manifest-file
marko-zivic-93 May 4, 2022
f41dd90
Update versions-manifest
459680 May 8, 2022
0d45fa8
Merge pull request #162 from actions/update-versions-manifest-file
miketimofeev May 8, 2022
3c5fa6d
Compile in universal2 mode for macOS Python >= 3.9.1.
bwoodsend Sep 23, 2021
bbe229e
Update versions-manifest
459680 May 18, 2022
1d967fc
Merge pull request #163 from actions/update-versions-manifest-file
miketimofeev May 18, 2022
687538e
Update versions-manifest
459680 Jun 1, 2022
b7ef994
Merge pull request #164 from actions/update-versions-manifest-file
Jun 1, 2022
46959ea
Update versions-manifest
459680 Jun 2, 2022
22f1105
Merge pull request #165 from actions/update-versions-manifest-file
marko-zivic-93 Jun 2, 2022
15394f2
Bump setup-python action to v3
Jun 2, 2022
c3505cc
Merge pull request #166 from vsafonkin/v-vsafonkin/update-action-version
Jun 2, 2022
34e7ffc
Update versions-manifest
459680 Jun 2, 2022
52b4d85
Merge pull request #114 from bwoodsend/universal2
Jun 2, 2022
5aad86b
Merge pull request #167 from actions/update-versions-manifest-file
Jun 2, 2022
2902290
Update versions-manifest (#169)
github-actions[bot] Jun 6, 2022
f59a952
Update versions-manifest
459680 Jun 7, 2022
bf3c64f
Merge pull request #170 from actions/update-versions-manifest-file
miketimofeev Jun 7, 2022
0f97bcd
Explicity set tcl/tk library
dsame Jun 17, 2022
6524532
Add test
dsame Jun 17, 2022
045abfc
Print versions
dsame Jun 17, 2022
edcd32d
Check tcltk for any platform and version
dsame Jun 17, 2022
34c0e9a
[macOS] fix 3.8.13 build (#172)
mikhailkoliada Jun 20, 2022
d974a7a
Update versions-manifest
459680 Jun 20, 2022
8a2b258
Merge pull request #173 from actions/update-versions-manifest-file
marko-zivic-93 Jun 20, 2022
73379f9
Merge pull request #171 from akv-platform/v-sdolin/issue-402
marko-zivic-93 Jun 27, 2022
12ba644
Document why we build from source on macOS
brcrista Jun 28, 2022
eaa180e
Merge pull request #174 from brcrista/patch-1
marko-zivic-93 Jun 29, 2022
714163c
Disable universal2 macOS builds (#175)
Jul 11, 2022
d57d1ea
Update versions-manifest
459680 Jul 13, 2022
f64b4b6
Merge pull request #177 from actions/update-versions-manifest-file
marko-zivic-93 Jul 13, 2022
ee30dbf
Update versions-manifest
459680 Jul 22, 2022
0f8d138
Merge pull request #178 from actions/update-versions-manifest-file
marko-zivic-93 Jul 22, 2022
d4c91ae
Update versions-manifest
459680 Jul 22, 2022
88aa9c4
Merge pull request #179 from actions/update-versions-manifest-file
marko-zivic-93 Jul 22, 2022
49da3d9
Update versions-manifest
459680 Jul 27, 2022
241f220
Merge pull request #180 from actions/update-versions-manifest-file
miketimofeev Jul 27, 2022
e419994
Update versions-manifest
459680 Aug 2, 2022
42d1484
Merge pull request #182 from actions/update-versions-manifest-file
miketimofeev Aug 2, 2022
e1b4a49
Merge pull request #154 from actions/aloviedo-patch-1
marko-zivic-93 Aug 3, 2022
c8b327c
Update versions-manifest (#183)
github-actions[bot] Aug 10, 2022
ae0a460
Update versions-manifest
459680 Sep 6, 2022
a22c344
Merge pull request #185 from actions/update-versions-manifest-file
miketimofeev Sep 6, 2022
18ea6bb
Update versions-manifest
459680 Sep 7, 2022
41636d5
Merge pull request #186 from actions/update-versions-manifest-file
miketimofeev Sep 7, 2022
9db1c7f
Update versions-manifest
459680 Sep 12, 2022
a28c508
Merge pull request #187 from actions/update-versions-manifest-file
miketimofeev Sep 12, 2022
3b05f53
Instal osx python from prebuilt packagese (#184)
dsame Sep 15, 2022
ff7fd27
Update versions-manifest
459680 Sep 15, 2022
a1a012d
Merge pull request #188 from actions/update-versions-manifest-file
marko-zivic-93 Sep 15, 2022
1e1d9f9
fix: setup OpenSSL certificates in `macos-pkg-setup-template.sh` (#189)
mayeut Oct 3, 2022
1982aae
Update versions-manifest (#190)
github-actions[bot] Oct 3, 2022
5988ec7
Update versions-manifest (#191)
github-actions[bot] Oct 18, 2022
024142b
Update versions-manifest (#192)
github-actions[bot] Oct 18, 2022
e7a13ad
Only run scheduled jobs on upstream (#145)
hugovk Oct 19, 2022
11c48b4
Update versions-manifest
459680 Oct 25, 2022
0d8f04f
Merge pull request #193 from actions/update-versions-manifest-file
marko-zivic-93 Oct 25, 2022
105f6b7
Skip sqlite test for python 3.11 and higher (#194)
Oct 26, 2022
379db95
Update versions-manifest (#195)
github-actions[bot] Oct 26, 2022
1c70aa4
Update workflow task (#196)
al-cheb Oct 31, 2022
149b806
test(config-test): Remove libreadline check for version >= 3.12
e-korolevskii Nov 4, 2022
929dab9
test(modules-test): Remove check for smtpd in python >= 3.12
e-korolevskii Nov 4, 2022
a6c0fa9
Merge pull request #197 from e-korolevskii/fix-tests-for-python-3.12
marko-zivic-93 Nov 8, 2022
9b2450c
Update python-builder.yml
MaksimZhukov Nov 9, 2022
b37d414
Merge pull request #198 from MaksimZhukov/fix-upload-assets-issue
marko-zivic-93 Nov 9, 2022
c81386e
Update versions-manifest
459680 Nov 9, 2022
4cb1787
Merge pull request #199 from actions/update-versions-manifest-file
marko-zivic-93 Nov 9, 2022
fe8bc01
Update github-script action version
MaksimZhukov Nov 9, 2022
16feed7
Merge pull request #200 from MaksimZhukov/update-github-script-version
marko-zivic-93 Nov 9, 2022
2cd33e8
Rename virtual-environments to runner-images
Nov 11, 2022
01c7f11
revert CODEOWNERS
Nov 11, 2022
188c9d4
update link to issues
Nov 11, 2022
60672e1
Merge pull request #201 from actions/rename-virt-env
marko-zivic-93 Nov 14, 2022
f6ede0f
Remove asyncore and asynchat modules from tests
MaksimZhukov Nov 22, 2022
875651c
Merge pull request #203 from MaksimZhukov/python-3.12.0-alpha2
marko-zivic-93 Nov 22, 2022
99b9e07
Update versions-manifest
459680 Nov 22, 2022
188d4c2
Merge pull request #204 from actions/update-versions-manifest-file
marko-zivic-93 Nov 22, 2022
14f269e
Switch Python generation from macOS 10.15 to 11
MaksimZhukov Nov 28, 2022
93c6627
Update a comment
MaksimZhukov Nov 28, 2022
150cd39
Merge pull request #205 from MaksimZhukov/v-mzhukov/migrate-python-ge…
marko-zivic-93 Nov 28, 2022
1248039
Update versions-manifest (#206)
github-actions[bot] Nov 30, 2022
08fcc9e
Update versions-manifest (#207)
github-actions[bot] Dec 2, 2022
626f42c
Update workflows to use reusable ones
MaksimZhukov Dec 5, 2022
69e05af
Simplify input usage
MaksimZhukov Dec 5, 2022
c483dd7
Add workflow_dispatch event for manifest validation
MaksimZhukov Dec 5, 2022
66440cc
Update versions-manifest (#208)
github-actions[bot] Dec 6, 2022
9feffed
Simplify if statement
MaksimZhukov Dec 6, 2022
fe45ddc
Update README.md
MaksimZhukov Dec 6, 2022
01d7e36
Update versions-manifest (#211)
github-actions[bot] Dec 7, 2022
6dd0b75
Update versions-manifest (#212)
github-actions[bot] Dec 8, 2022
b558df2
Merge pull request #209 from MaksimZhukov/introduce-reusable-workflows
marko-zivic-93 Dec 14, 2022
b7447f0
Change wording
MaksimZhukov Dec 15, 2022
2e59cc3
Change wording
MaksimZhukov Dec 15, 2022
80b2146
Change wording
MaksimZhukov Dec 15, 2022
a4dd6d4
Change wording
MaksimZhukov Dec 15, 2022
1fbaf20
Change wording
MaksimZhukov Dec 15, 2022
f99915c
Merge pull request #210 from MaksimZhukov/add-support-policy
marko-zivic-93 Dec 16, 2022
61e2b82
Update versions-manifest (#215)
github-actions[bot] Dec 19, 2022
66b48ed
Update CODEOWNERS
e-korolevskii Dec 26, 2022
ad06198
Merge pull request #216 from actions/update-code-owners
marko-zivic-93 Dec 27, 2022
e49c162
Update versions-manifest
459680 Jan 11, 2023
eb846d7
Merge pull request #217 from actions/update-versions-manifest-file
marko-zivic-93 Jan 11, 2023
dfc7050
Update codeql-analysis workflow to use reusable workflow (#218)
IvanZosimov Jan 19, 2023
71129be
Add support for 3.7.3 python version (#219)
dmitry-shibanov Feb 7, 2023
6f472a7
Update versions-manifest (#220)
github-actions[bot] Feb 7, 2023
b8accc4
Update versions-manifest (#221)
github-actions[bot] Feb 8, 2023
ed7a676
Update versions-manifest (#222)
github-actions[bot] Mar 6, 2023
e952c80
Update versions-manifest (#224)
github-actions[bot] Mar 8, 2023
b539ede
add root-user-action=ignore and check for .complete file (#223)
dmitry-shibanov Mar 9, 2023
c6bbc68
Update versions-manifest (#225)
github-actions[bot] Apr 6, 2023
256e6dd
Remove code related to Ubuntu 18.04. (#226)
MaksimZhukov Apr 6, 2023
6d04944
feat: build macOS arm64 packages (#214)
mayeut May 17, 2023
80893f5
change regex for creating pr (#227)
dmitry-shibanov May 19, 2023
c7573bf
Remove tests for deprecated libraries (#229)
dmitry-shibanov May 24, 2023
7693cef
Update versions-manifest (#228)
github-actions[bot] May 25, 2023
ab4e944
Add fixes for 3.7.17 (#233)
dmitry-shibanov Jun 8, 2023
225ba42
Update versions-manifest (#232)
github-actions[bot] Jun 9, 2023
87d20c7
Update versions-manifest (#234)
github-actions[bot] Jun 19, 2023
5a451d6
Update versions-manifest (#235)
github-actions[bot] Jun 21, 2023
c1cf5de
Fix for python 3.7.17 macOS (#236)
dmitry-shibanov Jun 23, 2023
9d3aa48
Update versions-manifest (#237)
github-actions[bot] Jun 23, 2023
c4456b9
Update versions-manifest (#238)
github-actions[bot] Jul 12, 2023
1d88a8f
add apt-get update (#239)
dmitry-shibanov Aug 7, 2023
3dca589
Update versions-manifest (#240)
github-actions[bot] Aug 7, 2023
38c560b
Update versions-manifest (#241)
github-actions[bot] Aug 28, 2023
8e2e289
Update versions-manifest (#242)
github-actions[bot] Sep 6, 2023
f4b3335
Update versions-manifest (#243)
github-actions[bot] Sep 19, 2023
b81fc1c
Update README.md and Add Support Notification Policy
dusan-trickovic Sep 20, 2023
ba0b46a
Merge pull request #245 from actions/deprecation-policy
marko-zivic-93 Sep 20, 2023
3880dd8
add logic with generation hash (#246)
dmitry-shibanov Sep 22, 2023
5da3a44
Update versions-manifest (#244)
github-actions[bot] Oct 3, 2023
381057c
Update modules removed in Python 3.13 (#247)
edgarrmondragon Oct 16, 2023
e642aba
Update versions-manifest (#248)
github-actions[bot] Oct 16, 2023
96dae78
Update versions-manifest (#249)
github-actions[bot] Nov 23, 2023
e605eda
Update versions-manifest (#250)
github-actions[bot] Dec 5, 2023
af22c2b
Update versions-manifest (#251)
github-actions[bot] Dec 8, 2023
310d6e4
Update versions-manifest (#255)
github-actions[bot] Jan 19, 2024
9903e2d
Update versions-manifest (#256)
github-actions[bot] Feb 8, 2024
eaf1258
version update (#257)
HarithaVattikuti Feb 14, 2024
c685dac
Update versions-manifest (#258)
github-actions[bot] Feb 16, 2024
627cd16
Update versions-manifest (#260)
github-actions[bot] Mar 13, 2024
1dbece3
Update versions-manifest (#261)
github-actions[bot] Mar 21, 2024
fa96e2a
Update versions-manifest (#262)
github-actions[bot] Apr 3, 2024
3545308
Update versions-manifest (#263)
github-actions[bot] Apr 10, 2024
29394d0
fix: use environment variable for `PIP_ROOT_USER_ACTION` (#259)
mayeut Apr 25, 2024
b643f0d
Update versions-manifest (#264)
github-actions[bot] Apr 25, 2024
2573fc9
fix: use environment variable for `PIP_ROOT_USER_ACTION` (#265)
mayeut Apr 29, 2024
c03f98f
Update versions-manifest (#266)
github-actions[bot] Apr 29, 2024
7c3d29f
fix: use `--upgrade` rather than `--ignore-installed` to upgrade pip …
mayeut May 8, 2024
eb9433f
feat: add ubuntu-24.04 (#269)
mayeut May 8, 2024
37e7166
fix: always reinstall pip (#271)
mayeut May 9, 2024
b77a7de
Update versions-manifest (#270)
github-actions[bot] May 9, 2024
064829b
Update versions-manifest (#272)
github-actions[bot] May 10, 2024
521be20
Updated arm64 versions (#273)
HarithaVattikuti May 10, 2024
c990e6d
chore: update action versions (#267)
mayeut May 22, 2024
8bbb541
Update build-python-packages.yml (#279)
priyagupta108 Jun 10, 2024
8108f42
Update versions-manifest (#281)
github-actions[bot] Jun 10, 2024
1693c7d
Revert "Update versions-manifest (#281)" (#282)
HarithaVattikuti Jun 10, 2024
cc396a6
Add skippublishercheck (#283)
HarithaVattikuti Jun 10, 2024
f14b797
Fix for corrupted published artifacts (#286)
HarithaVattikuti Jun 11, 2024
1c85886
Update versions-manifest (#284)
github-actions[bot] Jun 12, 2024
cb2aecd
Add Support for Linux arm64 Builds (#274)
priyagupta108 Jun 13, 2024
d55f04f
build `ubuntu-22.04_arm64` on `setup-actions-ubuntu-arm64-2-core` (#280)
mayeut Jun 20, 2024
1d2e861
Update versions-manifest (#289)
github-actions[bot] Jun 24, 2024
0e5f00e
Add windows arm64 support (#291)
aparnajyothi-y Jun 25, 2024
0c9a1f7
Update versions-manifest (#292)
github-actions[bot] Jun 26, 2024
57f2d89
Update versions-manifest (#293)
github-actions[bot] Jul 1, 2024
3970f04
Add support for Ubuntu 24 arm64 runner (#294)
HarithaVattikuti Jul 15, 2024
2438e27
Update versions-manifest (#296)
github-actions[bot] Jul 16, 2024
80d68b2
Update versions-manifest (#297)
github-actions[bot] Jul 17, 2024
9d3be76
Update versions-manifest (#298)
github-actions[bot] Jul 22, 2024
2f8ab97
Fix for the Codeql-analysis.yml workflow failure (#299)
aparnajyothi-y Jul 25, 2024
b423327
Update versions-manifest (#300)
github-actions[bot] Aug 6, 2024
c8a840c
Update versions-manifest (#301)
github-actions[bot] Aug 7, 2024
bb9054d
Fix for the build failures on the ubuntu 24.04 runner (#302)
aparnajyothi-y Aug 13, 2024
b8cfd51
Update versions-manifest (#303)
github-actions[bot] Aug 14, 2024
8dd72e5
Fix for the build failures on the self-hosted Ubuntu 24.04 arm64 runn…
aparnajyothi-y Aug 29, 2024
c41d908
Update versions-manifest (#305)
github-actions[bot] Aug 29, 2024
1695577
Update versions-manifest (#306)
github-actions[bot] Sep 9, 2024
98e7947
Update versions-manifest (#307)
github-actions[bot] Sep 30, 2024
8eb4ff3
Update versions-manifest (#308)
github-actions[bot] Oct 3, 2024
b0ba1db
Update versions-manifest (#309)
github-actions[bot] Oct 3, 2024
5d096de
Update versions-manifest (#310)
github-actions[bot] Oct 8, 2024
48bcef9
Update versions-manifest (#312)
github-actions[bot] Oct 8, 2024
dd24c2e
Update versions-manifest (#314)
github-actions[bot] Oct 16, 2024
d8ae6ee
updated the latest versions and included macos-13 (#315)
priya-kinthali Oct 21, 2024
7069021
Update openssl 1.1 to 3 (#316)
aparnajyothi-y Nov 5, 2024
771cbab
Update versions-manifest (#321)
github-actions[bot] Nov 20, 2024
5bbc2ca
Update versions-manifest (#322)
github-actions[bot] Dec 4, 2024
87721c9
Fix tkinter issues (#324)
HarithaVattikuti Dec 12, 2024
54c77b6
Update versions-manifest (#325)
github-actions[bot] Dec 16, 2024
d7df8df
Update versions-manifest (#327)
github-actions[bot] Dec 18, 2024
4cee445
Enhance workflows: Add Ubuntu-24 Testing (#326)
priya-kinthali Dec 19, 2024
e5b79ff
Update versions-manifest (#329)
github-actions[bot] Jan 15, 2025
4f85d6a
Update versions-manifest (#331)
github-actions[bot] Feb 5, 2025
e550a75
Update versions-manifest (#332)
github-actions[bot] Feb 12, 2025
d456108
Support building free-threaded CPython (#319)
colesbury Feb 20, 2025
3854fb5
Update versions-manifest (#333)
github-actions[bot] Feb 24, 2025
1c10cad
Update versions-manifest (#334)
github-actions[bot] Mar 10, 2025
5ebefac
Update versions-manifest (#335)
github-actions[bot] Mar 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Support building free-threaded CPython (actions#319)
* Support building free-threaded CPython

Add support for Python's free threading build mode where the global
interpreter lock is disabled. The packages are marked using a suffix on
the architecture, like 'x64-freethreaded' or 'arm64-freethreaded'.

* Match '-freethreaded' in arch

* Use type 'string' instead of 'str'

* On Linux, only delete Python installations with the same architecture.

This matches the macOS behavior and allows users to install both the
free-threading and default builds at the same time.
  • Loading branch information
colesbury authored Feb 20, 2025
commit d456108e6b12fecb0d988022c9deb04498fde70d
64 changes: 41 additions & 23 deletions .github/workflows/build-python-packages.yml
Original file line number Diff line number Diff line change
@@ -12,6 +12,11 @@ on:
required: true
type: boolean
default: false
THREADING_BUILD_MODES:
description: 'CPython threading build modes'
required: true
type: string
default: 'default,freethreaded'
PLATFORMS:
description: 'Platforms for execution in "os" or "os_arch" format (arch is "x64" by default)'
required: true
@@ -40,32 +45,42 @@ jobs:
id: generate-matrix
run: |
[String[]]$configurations = "${{ inputs.platforms || 'ubuntu-20.04,ubuntu-22.04,ubuntu-22.04_arm64,ubuntu-24.04,ubuntu-24.04_arm64,macos-13,macos-14_arm64,windows-2019_x64,windows-2019_x86,windows-2019_arm64' }}".Split(",").Trim()
[String[]]$buildModes = "${{ inputs.threading_build_modes || 'default' }}".Split(",").Trim()
$matrix = @()

foreach ($configuration in $configurations) {
$parts = $configuration.Split("_")
$os = $parts[0]
$arch = if ($parts[1]) {$parts[1]} else {"x64"}
switch -wildcard ($os) {
"*ubuntu*" { $platform = $os.Replace("ubuntu","linux")}
"*macos*" { $platform = 'darwin' }
"*windows*" { $platform = 'win32' }
}

if ($configuration -eq "ubuntu-22.04_arm64") {
$os = "setup-actions-ubuntu-arm64-2-core"
}
elseif ($configuration -eq "ubuntu-24.04_arm64") {
$os = "setup-actions-ubuntu24-arm64-2-core"
}
elseif ($configuration -eq "windows-2019_arm64") {
$os = "setup-actions-windows-arm64-4-core"
}

$matrix += @{
'platform' = $platform
'os' = $os
'arch' = $arch
foreach ($buildMode in $buildModes) {
$parts = $configuration.Split("_")
$os = $parts[0]
$arch = if ($parts[1]) {$parts[1]} else {"x64"}
switch -wildcard ($os) {
"*ubuntu*" { $platform = $os.Replace("ubuntu","linux")}
"*macos*" { $platform = 'darwin' }
"*windows*" { $platform = 'win32' }
}

if ($configuration -eq "ubuntu-22.04_arm64") {
$os = "setup-actions-ubuntu-arm64-2-core"
}
elseif ($configuration -eq "ubuntu-24.04_arm64") {
$os = "setup-actions-ubuntu24-arm64-2-core"
}
elseif ($configuration -eq "windows-2019_arm64") {
$os = "setup-actions-windows-arm64-4-core"
}

if ($buildMode -eq "freethreaded") {
if ([semver]"${{ inputs.VERSION }}" -lt [semver]"3.13.0") {
continue;
}
$arch += "-freethreaded"
}

$matrix += @{
'platform' = $platform
'os' = $os
'arch' = $arch
}
}
}
echo "matrix=$($matrix | ConvertTo-Json -Compress -AsArray)" >> $env:GITHUB_OUTPUT
@@ -205,6 +220,9 @@ jobs:
python-version: ${{ env.VERSION }}
architecture: ${{ matrix.arch }}

- name: Python version
run: python -VVV

- name: Verbose sysconfig dump
if: runner.os == 'Linux' || runner.os == 'macOS'
run: python ./sources/python-config-output.py
33 changes: 33 additions & 0 deletions builders/macos-python-builder.psm1
Original file line number Diff line number Diff line change
@@ -151,6 +151,37 @@ class macOSPythonBuilder : NixPythonBuilder {
return $pkgLocation
}

[string] GetFrameworkName() {
<#
.SYNOPSIS
Get the Python installation Package name.
#>

if ($this.IsFreeThreaded()) {
return "PythonT.framework"
} else {
return "Python.framework"
}
}

[string] GetPkgChoices() {
<#
.SYNOPSIS
Reads the configuration XML file for the Python installer
#>

$config = if ($this.IsFreeThreaded()) { "freethreaded" } else { "default" }
$choicesFile = Join-Path $PSScriptRoot "../config/macos-pkg-choices-$($config).xml"
$choicesTemplate = Get-Content -Path $choicesFile -Raw

$variablesToReplace = @{
"{{__VERSION_MAJOR_MINOR__}}" = "$($this.Version.Major).$($this.Version.Minor)";
}

$variablesToReplace.keys | ForEach-Object { $choicesTemplate = $choicesTemplate.Replace($_, $variablesToReplace[$_]) }
return $choicesTemplate
}

[void] CreateInstallationScriptPkg() {
<#
.SYNOPSIS
@@ -165,6 +196,8 @@ class macOSPythonBuilder : NixPythonBuilder {
"{{__VERSION_FULL__}}" = $this.Version;
"{{__PKG_NAME__}}" = $this.GetPkgName();
"{{__ARCH__}}" = $this.Architecture;
"{{__FRAMEWORK_NAME__}}" = $this.GetFrameworkName();
"{{__PKG_CHOICES__}}" = $this.GetPkgChoices();
}

$variablesToReplace.keys | ForEach-Object { $installationTemplateContent = $installationTemplateContent.Replace($_, $variablesToReplace[$_]) }
2 changes: 1 addition & 1 deletion builders/nix-python-builder.psm1
Original file line number Diff line number Diff line change
@@ -115,7 +115,7 @@ class NixPythonBuilder : PythonBuilder {
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 2>&1 | tee $buildOutputLocation" -ErrorAction Continue
Execute-Command -Command "make install" -ErrorAction Continue

Write-Debug "Done; Make log location: $buildOutputLocation"
18 changes: 18 additions & 0 deletions builders/python-builder.psm1
Original file line number Diff line number Diff line change
@@ -94,6 +94,24 @@ class PythonBuilder {
return "$($this.Version.Major).$($this.Version.Minor).$($this.Version.Patch)"
}

[string] GetHardwareArchitecture() {
<#
.SYNOPSIS
The hardware architecture (x64, arm64) without any Python free threading suffix.
#>

return $this.Architecture.Replace("-freethreaded", "")
}

[bool] IsFreeThreaded() {
<#
.SYNOPSIS
Check if Python version is free threaded.
#>

return $this.Architecture.EndsWith("-freethreaded")
}

[void] PreparePythonToolcacheLocation() {
<#
.SYNOPSIS
8 changes: 8 additions & 0 deletions builders/ubuntu-python-builder.psm1
Original file line number Diff line number Diff line change
@@ -37,6 +37,14 @@ class UbuntuPythonBuilder : NixPythonBuilder {
$configureString += " --enable-shared"
$configureString += " --enable-optimizations"

if ($this.IsFreeThreaded()) {
if ($this.Version -lt "3.13.0") {
Write-Host "Python versions lower than 3.13.0 do not support free threading"
exit 1
}
$configureString += " --disable-gil"
}

### Compile with support of loadable sqlite extensions.
### Link to documentation (https://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.enable_load_extension)
$configureString += " --enable-loadable-sqlite-extensions"
5 changes: 3 additions & 2 deletions builders/win-python-builder.psm1
Original file line number Diff line number Diff line change
@@ -54,13 +54,13 @@ class WinPythonBuilder : PythonBuilder {
#>

$ArchitectureExtension = ""
if ($this.Architecture -eq "x64") {
if ($this.GetHardwareArchitecture() -eq "x64") {
if ($this.Version -ge "3.5") {
$ArchitectureExtension = "-amd64"
} else {
$ArchitectureExtension = ".amd64"
}
}elseif ($this.Architecture -eq "arm64") {
} elseif ($this.GetHardwareArchitecture() -eq "arm64") {
$ArchitectureExtension = "-arm64"
}

@@ -113,6 +113,7 @@ class WinPythonBuilder : PythonBuilder {

$variablesToReplace = @{
"{{__ARCHITECTURE__}}" = $this.Architecture;
"{{__HARDWARE_ARCHITECTURE__}}" = $this.GetHardwareArchitecture();
"{{__VERSION__}}" = $this.Version;
"{{__PYTHON_EXEC_NAME__}}" = $pythonExecName
}
8 changes: 8 additions & 0 deletions config/macos-pkg-choices-default.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
</dict>
</array>
</plist>
14 changes: 14 additions & 0 deletions config/macos-pkg-choices-freethreaded.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>attributeSetting</key>
<integer>1</integer>
<key>choiceAttribute</key>
<string>selected</string>
<key>choiceIdentifier</key>
<string>org.python.Python.PythonTFramework-{{__VERSION_MAJOR_MINOR__}}</string>
</dict>
</array>
</plist>
2 changes: 1 addition & 1 deletion config/python-manifest-config.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"regex": "python-\\d+\\.\\d+\\.\\d+-(\\w+\\.\\d+)?-?(\\w+)-(\\d+\\.\\d+)?-?((x|arm)\\d+)",
"regex": "python-\\d+\\.\\d+\\.\\d+-(\\w+\\.\\d+)?-?(\\w+)-(\\d+\\.\\d+)?-?((x|arm)\\d+(-freethreaded)?)",
"groups": {
"arch": 4,
"platform": 2,
20 changes: 17 additions & 3 deletions installers/macos-pkg-setup-template.sh
Original file line number Diff line number Diff line change
@@ -2,6 +2,11 @@ set -e

PYTHON_FULL_VERSION="{{__VERSION_FULL__}}"
PYTHON_PKG_NAME="{{__PKG_NAME__}}"
PYTHON_FRAMEWORK_NAME="{{__FRAMEWORK_NAME__}}"
PYTHON_PKG_CHOICES=$(cat << 'EOF'
{{__PKG_CHOICES__}}
EOF
)
ARCH="{{__ARCH__}}"
MAJOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 1)
MINOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 2)
@@ -20,7 +25,7 @@ fi
PYTHON_TOOLCACHE_PATH=$TOOLCACHE_ROOT/Python
PYTHON_TOOLCACHE_VERSION_PATH=$PYTHON_TOOLCACHE_PATH/$PYTHON_FULL_VERSION
PYTHON_TOOLCACHE_VERSION_ARCH_PATH=$PYTHON_TOOLCACHE_VERSION_PATH/$ARCH
PYTHON_FRAMEWORK_PATH="/Library/Frameworks/Python.framework/Versions/${MAJOR_VERSION}.${MINOR_VERSION}"
PYTHON_FRAMEWORK_PATH="/Library/Frameworks/${PYTHON_FRAMEWORK_NAME}/Versions/${MAJOR_VERSION}.${MINOR_VERSION}"
PYTHON_APPLICATION_PATH="/Applications/Python ${MAJOR_VERSION}.${MINOR_VERSION}"

echo "Check if Python hostedtoolcache folder exist..."
@@ -38,8 +43,11 @@ else
done
fi

PYTHON_PKG_CHOICES_FILES=$(mktemp)
echo "$PYTHON_PKG_CHOICES" > $PYTHON_PKG_CHOICES_FILES

echo "Install Python binaries from prebuilt package"
sudo installer -pkg $PYTHON_PKG_NAME -target /
sudo installer -pkg $PYTHON_PKG_NAME -applyChoiceChangesXML $PYTHON_PKG_CHOICES_FILES -target /

echo "Create hostedtoolcach symlinks (Required for the backward compatibility)"
echo "Create Python $PYTHON_FULL_VERSION folder"
@@ -53,7 +61,9 @@ ln -s "${PYTHON_FRAMEWORK_PATH}/lib" lib

echo "Create additional symlinks (Required for the UsePythonVersion Azure Pipelines task and the setup-python GitHub Action)"
ln -s ./bin/$PYTHON_MAJOR_DOT_MINOR python
chmod +x python

# Note that bin is a symlink so referencing .. from bin will not work as expected
cd bin/

# This symlink already exists if Python version with the same major.minor version is installed,
@@ -62,11 +72,15 @@ if [ ! -f $PYTHON_MAJOR_MINOR ]; then
ln -s $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJOR_MINOR
fi

if [ ! -f $PYTHON_MAJOR ]; then
ln -s $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJOR
fi

if [ ! -f python ]; then
ln -s $PYTHON_MAJOR_DOT_MINOR python
fi

chmod +x ../python $PYTHON_MAJOR $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJOR_MINOR python
chmod +x $PYTHON_MAJOR $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJOR_MINOR python

echo "Upgrading pip..."
export PIP_ROOT_USER_ACTION=ignore
6 changes: 3 additions & 3 deletions installers/nix-setup-template.sh
Original file line number Diff line number Diff line change
@@ -24,9 +24,9 @@ echo "Check if Python hostedtoolcache folder exist..."
if [ ! -d $PYTHON_TOOLCACHE_PATH ]; then
echo "Creating Python hostedtoolcache folder..."
mkdir -p $PYTHON_TOOLCACHE_PATH
elif [ -d $PYTHON_TOOLCACHE_VERSION_PATH ]; then
echo "Deleting Python $PYTHON_FULL_VERSION"
rm -rf $PYTHON_TOOLCACHE_VERSION_PATH
elif [ -d $PYTHON_TOOLCACHE_VERSION_ARCH_PATH ]; then
echo "Deleting Python $PYTHON_FULL_VERSION ($ARCH)"
rm -rf $PYTHON_TOOLCACHE_VERSION_ARCH_PATH
fi

echo "Create Python $PYTHON_FULL_VERSION folder"
21 changes: 18 additions & 3 deletions installers/win-setup-template.ps1
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[String] $Architecture = "{{__ARCHITECTURE__}}"
[String] $HardwareArchitecture = "{{__HARDWARE_ARCHITECTURE__}}"
[String] $Version = "{{__VERSION__}}"
[String] $PythonExecName = "{{__PYTHON_EXEC_NAME__}}"

@@ -25,7 +26,7 @@ function Remove-RegistryEntries {
[Parameter(Mandatory)][Int32] $MinorVersion
)

$versionFilter = Get-RegistryVersionFilter -Architecture $Architecture -MajorVersion $MajorVersion -MinorVersion $MinorVersion
$versionFilter = Get-RegistryVersionFilter -Architecture $HardwareArchitecture -MajorVersion $MajorVersion -MinorVersion $MinorVersion

$regPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products"
if (Test-Path -Path Registry::$regPath) {
@@ -61,13 +62,15 @@ function Remove-RegistryEntries {
function Get-ExecParams {
param(
[Parameter(Mandatory)][Boolean] $IsMSI,
[Parameter(Mandatory)][Boolean] $IsFreeThreaded,
[Parameter(Mandatory)][String] $PythonArchPath
)

if ($IsMSI) {
"TARGETDIR=$PythonArchPath ALLUSERS=1"
} else {
"DefaultAllUsersTargetDir=$PythonArchPath InstallAllUsers=1"
$Include_freethreaded = if ($IsFreeThreaded) { "Include_freethreaded=1" } else { "" }
"DefaultAllUsersTargetDir=$PythonArchPath InstallAllUsers=1 $Include_freethreaded"
}
}

@@ -81,6 +84,7 @@ $PythonVersionPath = Join-Path -Path $PythonToolcachePath -ChildPath $Version
$PythonArchPath = Join-Path -Path $PythonVersionPath -ChildPath $Architecture

$IsMSI = $PythonExecName -match "msi"
$IsFreeThreaded = $Architecture -match "-freethreaded"

$MajorVersion = $Version.Split('.')[0]
$MinorVersion = $Version.Split('.')[1]
@@ -120,13 +124,24 @@ Write-Host "Copy Python binaries to $PythonArchPath"
Copy-Item -Path ./$PythonExecName -Destination $PythonArchPath | Out-Null

Write-Host "Install Python $Version in $PythonToolcachePath..."
$ExecParams = Get-ExecParams -IsMSI $IsMSI -PythonArchPath $PythonArchPath
$ExecParams = Get-ExecParams -IsMSI $IsMSI -IsFreeThreaded $IsFreeThreaded -PythonArchPath $PythonArchPath

cmd.exe /c "cd $PythonArchPath && call $PythonExecName $ExecParams /quiet"
if ($LASTEXITCODE -ne 0) {
Throw "Error happened during Python installation"
}

# print out all files in $PythonArchPath
Write-Host "Files in $PythonArchPath"
$files = Get-ChildItem -Path $PythonArchPath -File -Recurse
Write-Output $files

if ($IsFreeThreaded) {
# Delete python.exe and create a symlink to free-threaded exe
Remove-Item -Path "$PythonArchPath\python.exe" -Force
New-Item -Path "$PythonArchPath\python.exe" -ItemType SymbolicLink -Value "$PythonArchPath\python${MajorVersion}.${MinorVersion}t.exe"
}

Write-Host "Create `python3` symlink"
if ($MajorVersion -ne "2") {
New-Item -Path "$PythonArchPath\python3.exe" -ItemType SymbolicLink -Value "$PythonArchPath\python.exe"
4 changes: 3 additions & 1 deletion tests/python-tests.ps1
Original file line number Diff line number Diff line change
@@ -7,6 +7,8 @@ param (
$Architecture
)

$HardwareArchitecture = $Architecture -replace "-freethreaded", ""

Import-Module (Join-Path $PSScriptRoot "../helpers/pester-extensions.psm1")
Import-Module (Join-Path $PSScriptRoot "../helpers/common-helpers.psm1")
Import-Module (Join-Path $PSScriptRoot "../builders/python-version.psm1")
@@ -58,7 +60,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 -ge "3.2.0") -and ($Version -lt "3.11.0") -and (($Platform -ne "darwin") -or ($HardwareArchitecture -ne "arm64"))) {
It "Check if sqlite3 module is installed" {
"python ./sources/python-sqlite3.py" | Should -ReturnZeroExitCode
}
Loading
Oops, something went wrong.