Skip to content

create and upload to releases additional install only free-threaded assets#1014

Merged
zanieb merged 3 commits intoastral-sh:mainfrom
jjhelmus:ft_install_only
Mar 20, 2026
Merged

create and upload to releases additional install only free-threaded assets#1014
zanieb merged 3 commits intoastral-sh:mainfrom
jjhelmus:ft_install_only

Conversation

@jjhelmus
Copy link
Copy Markdown
Contributor

Create install_only assets for the free-threaded builds of Python 3.13+.
This is in addition to the install_only assets for the GIL configuration of these builds.
These assets are upload to a GitHub release by the appropriate action.

Based upon #537

Closes #536

@jjhelmus
Copy link
Copy Markdown
Contributor Author

jjhelmus commented Mar 19, 2026

Tested this by patching locally to skip downloading/uploading most artifacts:

diff --git a/src/github.rs b/src/github.rs
index 0d3079f..7ad16b7 100644
--- a/src/github.rs
+++ b/src/github.rs
@@ -264,6 +264,13 @@ pub async fn command_fetch_release_distributions(args: &ArgMatches) -> Result<()
                 || artifact.name.contains("dockerbuild")
                 || artifact.name.contains("crate-")
                 || artifact.name.contains("image-")
+                || artifact.name.contains("linux")
+                || artifact.name.contains("windows")
+                || artifact.name.contains("x86_64")
+                || artifact.name.contains("vcvars")
+                || artifact.name.contains("3.10")
+                || artifact.name.contains("3.11")
+                || artifact.name.contains("3.15")
             {
                 continue;
             }
diff --git a/src/release.rs b/src/release.rs
index 557c197..7438962 100644
--- a/src/release.rs
+++ b/src/release.rs
@@ -410,6 +410,10 @@ pub fn build_wanted_filenames(
                 }
             }
 
+            if triple.contains("linux") || triple.contains("windows") || triple.contains("x86") {
+                continue;
+            }
+
             for suffix in release.suffixes(Some(&python_version)) {
                 wanted_filenames.insert(
                     format!("cpython-{version}-{triple}-{suffix}-{datetime}.tar.zst"),

Then running :

❯ cargo run --release -- fetch-release-distributions --commit 6f6aaa14b97440f29c246cd4d0accabb13cd885c --dest dist_gh --token <token>
...
downloading artifact cpython-3.12-aarch64-apple-darwin-debug
downloading artifact cpython-3.13-aarch64-apple-darwin-freethreaded+debug
downloading artifact cpython-3.14-aarch64-apple-darwin-freethreaded+debug
...
prepared cpython-3.14.3-aarch64-apple-darwin-freethreaded-install_only_stripped-20260310T1253.tar.gz for release
prepared cpython-3.14.3-aarch64-apple-darwin-install_only_stripped-20260310T1253.tar.gz for release

❯ ls -1 dist_gh/*install_only_stripped*
dist_gh/cpython-3.12.13-aarch64-apple-darwin-install_only_stripped-20260310T1253.tar.gz
dist_gh/cpython-3.13.12-aarch64-apple-darwin-freethreaded-install_only_stripped-20260310T1253.tar.gz
dist_gh/cpython-3.13.12-aarch64-apple-darwin-install_only_stripped-20260310T1253.tar.gz
dist_gh/cpython-3.14.3-aarch64-apple-darwin-freethreaded-install_only_stripped-20260310T1253.tar.gz
dist_gh/cpython-3.14.3-aarch64-apple-darwin-install_only_stripped-20260310T1253.tar.gz

Followed by:

❯ cargo run --release -- upload-release-distributions --dist dist_gh --token <token> --datetime 20260310T1253 --tag blahblah -n
    Finished `release` profile [optimized] target(s) in 0.11s
     Running `target/release/pythonbuild upload-release-distributions --dist dist_gh --token <token> --datetime 20260310T1253 --tag blahblah -n`
found all 20 release artifacts
release blahblah does not exist; exiting dry-run mode...

@jjhelmus jjhelmus marked this pull request as ready for review March 19, 2026 21:24
@jjhelmus jjhelmus requested review from zanieb and zsol March 19, 2026 21:24
@zanieb zanieb merged commit fb382b4 into astral-sh:main Mar 20, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

freethreaded builds missing install_only artifacts

2 participants