Skip to content

Releases: astral-sh/python-build-standalone

20250521

22 May 03:41
482a9bc
Compare
Choose a tag to compare
20250521 Pre-release
Pre-release

Build changes

  • Remove various older X11 packages and expand use of xorgproto (#609)

Distribution changes

  • Allow the experimental JIT to be enabled at runtime on Python 3.13 and 3.14 on macOS on aarch64 aka Apple Silicon (#544). Linux was added previously in #538 and #543; our macOS compatibility baseline is too old for x86_64 to enable it at the moment.
  • Work around third-party packages that (incorrectly) assume the interpreter is dynamically linking libpython (#621). As with the 20250517 release, we are still statically linking libpython into the interpreter for performance and compatibility, and still shipping a dynamic libpython for compatibility with various tools/workflows that expect it, but we have now tweaked the build to increase the compatibility of this configuration.

Full Changelog: 2025051...2025052

20250517

17 May 14:07
ae06f31
Compare
Choose a tag to compare

Updates

  • CPython 3.14.0a7
  • LLVM 21.0.4

Distribution changes

  • Include Python 3.14 in published musl distributions
  • Include free-threaded Python in published musl distributions
  • Statically link libpython into interpreter on Linux (but keep building libpython3.x.so)
  • Fix potential filedescriptor leak by not applying -hugify

Full Changelog: 2025040...2025051

20250409

09 Apr 15:16
186813f
Compare
Choose a tag to compare

Updates

  • CPython 3.13.3
  • CPython 3.12.10
  • CPython 3.11.12
  • CPython 3.10.17
  • CPython 3.9.22

Build changes

  • Add support for building Python 3.14 on musl (distributions are not yet published)
  • Add support for building free-threaded Python on musl (distributions are not yet published)

Full Changelog: 2025031...2025040

20250317

17 Mar 22:10
7d8bb5e
Compare
Choose a tag to compare

Upgrades

  • CPython 3.14.0a6

Distribution changes

  • Compile sqlite with FTS3 enhanced query syntax enabled
  • Declare the target_cxx value for all targets

Build changes

  • Use a mirror for bzip2 to bypass rate limits on downloads
  • Cache dependency downloads in CI on Linux

Full Changelog: 2025031...2025031

20250311

11 Mar 19:56
08c1fac
Compare
Choose a tag to compare

Breaking changes

  • The musl distributions are now dynamically linked

    Previously, the musl distributions were fully statically linked, which prevented them from being used with extension modules. Now, the musl distributions have a shared libpython and dynamically link musl libc. Similar to the GNU libc distributions, this means that musl libc will need to be installed to use these distributions. These distributions are intended for use on musl Linux distributions, such as Alpine. The minimum required musl version is 1.2.2. The statically linked musl distributions are still available and are tagged with the +static build option, e.g., cpython-3.10.16+20250311-x86_64-unknown-linux-musl-debug+static-full.tar.zst. See #541 for implementation details.

  • Windows artifacts with the -shared suffix will no longer be published: this variant became the default in 20240415 and duplicate archives have been published under the -shared suffix for backwards compatibility. Use the equivalent archives without the suffix.

Upgrades

  • LLVM 19.1.6 -> 20.1.0

    This upgrade also includes a pair of cherry-picked pull requests (llvm/llvm-project#114990 and llvm/llvm-project#120267) that improve handling of computed gotos; fixing a performance regression in LLVM 19 and enabling BOLT optimizations to work on computed gotos.

Distribution changes

  • Allow the experimental JIT to be enabled at runtime on Python 3.13 and 3.14 on Linux: for details, see #538 and #543; for macOS support, see #544

Build system changes

  • Populate CXX during builds to avoid calling the system toolchain

Full Changelog: 2025021...2025031

20250212

12 Feb 15:40
aa430e2
Compare
Choose a tag to compare

Upgrades

  • OpenSSL 3.0.15 -> 3.0.16
  • CPython 3.14.0a4 -> 3.14.0a5

Distribution changes

  • Add attestations to remaining release artifacts
  • Use an array for cross-platform sed args to avoid unexpected shell expansion; eliminating extraneous .pc files
  • Enable the tail call interpreter on 3.14+ clang builds; providing a significant performance improvement

Build system changes

  • The Rust dependencies have been updated; see #510 and #515

Full Changelog: 2025020...2025021

20250205

05 Feb 20:08
183bc64
Compare
Choose a tag to compare

Upgrades

  • CPython: 3.12.8 -> 3.12.9
  • CPython: 3.13.1 -> 3.13.2

Distribution changes

  • pkg-config files are now relocatable instead of hard-coding our build-time path (#507, see also astral-sh/uv#11028)
  • Ensure build attestations are present for all artifacts on main (derived release artifacts, like install-only tarballs, do not have attestations yet) (#501)

Build system changes

  • Build scripts work if the Python you're using is itself from python-build-standalone (#505)

Full Changelog: 2025011...2025020

20250115

15 Jan 16:40
722eb60
Compare
Choose a tag to compare

Upgrades

  • libedit 20210910-3.1 -> 20240808-3.1
  • CPython 3.14a3 -> 3.14a4
  • tcl/tk 8.6.12 -> 8.6.14 (for all Python versions on Unix, only for Python 3.14 on Windows)

Distribution changes

  • Add build attestations to artifacts on main
  • Add Python 3.14 support on Windows
  • Add riscv64-linux support

Build system changes

  • Generate CI runners for build matrix dynamically
  • Upgrade Python build environment requirements
  • Call ulimit -n to avoid overheads in Docker image builds
  • Retry on transient failures during artifact upload
  • Implement matrix sharding in CI
  • Retry downloads when <75% of the file is downloaded

Thanks @Xeonacid, @samypr100, @orf, and @kilian-hu for the contributions.

Full Changelog: 2025010...2025011

20250106

06 Jan 18:12
051438c
Compare
Choose a tag to compare

Distribution changes

  • Support for Python 3.14.0a3 on macOS and GNU Linux (not yet available on Windows and musl Linux)
  • Enable loading hot code into 2MB pages (hugify) with BOLT optimizations
  • Use the cdsplit function splitting strategy for BOLT optimizations
  • Enable PGO on x86-64-v4 GNU Linux (the lto variant is replaced by pgo+lto)

Upgrades

  • autoconf 2.71 -> 2.72
  • LLVM 18 -> 19.1.6
  • zlib 1.2.13 -> 1.3.1

Fixes

  • Add missing parser files to Python 3.13+ Linux and macOS
  • Fix detection of SQLite features for the sqlite3 module, e.g., Connection.serialize
  • Configure pkg-config during CPython builds: improves detection of various minor features
  • Add missing -update-debug-section flag to BOLT instrumentation
  • Skip test_embed test cases that segfault when BOLT is enabled
  • Remove use of deprecated hfsort+ strategy in BOLT

Build system changes

  • Skip building pythonbuild when not needed
  • Separate patches for cross-compiling on older Python versions
  • Use Python 3.12 to run builds on Windows
  • Show Docker build errors when available
  • Bump Docker timeout from 60s to 10m

Full Changelog: 2024121...2025010

20241219

19 Dec 22:54
a9484ef
Compare
Choose a tag to compare

Distribution changes

  • Strip versioned Xcode path from build flags (#414)
  • Sort keys in sysconfig data (#415)
  • Patch _tkinter.c to look in base prefix (#421)
  • Remove -Werror=unguarded-availability-new from sysconfig data (#422)
  • Convert to UTF-8 prior to setting Tkinter path (#425)
  • Pass -utf8 to vswhere (#429)
  • Remove pgo-only builds on macOS and Linux; pgo+lto builds are available (#444)

Build system changes

  • Remove mips / mipsel targets from CI; these were not published (#413)
  • Scope libatomic allowance to MIPS on Python 3.13 (#411)
  • Build system refactor to prepare for parallel Python version building (#419)
  • Ignore clean-up errors for Windows temporary directory (#427)
  • Require mimalloc explicitly on all GNU Python 3.13 builds (#391)
  • Generate CI matrix at dynamically (#428)

Full Changelog: 2024120...2024121