Releases: astral-sh/python-build-standalone
20250409
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
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
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
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
Full Changelog: 2025020...2025021
20250205
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
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
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 bypgo+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
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
fromsysconfig
data (#422) - Convert to UTF-8 prior to setting Tkinter path (#425)
- Pass
-utf8
tovswhere
(#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
20241206
This release includes a fix for 20241205, please see that release for other changes.
Fixes
- Create a copy of
python3.13t.exe
atpython.exe
andpythonw3.13t.exe
atpythonw.exe
for free-threaded Windows distributions: 20241205 attempted to remove the3.13t
suffixed executables, but it caused a regression with the virtual environment launcher. A later release may consolidate these executables under unsuffixed name for consistency. In the meantime, a copy is a simple, compatible solution.
20241205
This release includes a regression for free-threaded Python 3.13 on Windows. No other distribution versions are affected. The regression is resolved in 20241206 See #405 for details.
Breaking
- Drop support for Python 3.8: The 20241008 release was the last release with Python 3.8 distributions. Support has now been removed from the build process.
- Rename
python3.13t.exe
topython.exe
in Windows free-threaded distributions: This matches the other Windows distributions. See astral-sh/uv#8298 for discussion.
Upgrades
- CPython 3.9.20 -> 3.9.21
- CPython 3.10.15 -> 3.10.16
- CPython 3.11.10 -> 3.11.11
- CPython 3.12.7 -> 3.12.8
- CPython 3.13.0 -> 3.13.1
- binutils 2.42 -> 2.43
- jom-windows-bin 1.1.3 -> 1.1.4
- mpdecimal 2.5.1 -> 4.0.0
- pip 24.1.2 -> 24.3.1
- setuptools 70.3.0 -> 75.6.0
- SQLite 3.46.0 -> 3.47.1
- strawberryperl 5.28.1.1 -> 5.38.2.2
- x11-util-macros 1.20.0 -> 1.20.1
Fixes
- Use relocatable shebang with space-in-path robustness
- Enable support for
dbstat
virtual tables in SQLite viaSQLITE_ENABLE_DBSTAT_VTAB
- Ensure that
Hacl_Hash_SHA2
does not appear as a library to link to
Other
- Build with Visual Studio 2022 instead of 2019
Full Changelog: 2024101...2024120