Releases: astral-sh/python-build-standalone
20240726
Need help choosing which build to use? See documentation at https://gregoryszorc.com/docs/python-build-standalone/20240725/running.html.
Upgrades
- LLVM 17.0.6 -> 18.0.8
- OpenSSL 3.0.13 -> 3.0.14
- SQLite 3.45.1 -> 3.46.0
- setuptools 69.1.0 -> 70.3.0
- pip 24.0 -> 24.1.2
- ncurses 6.4 -> 6.5
- libffi 3.4.4 -> 3.4.6
Enhancements
- A new
install_only_stripped
variant is now included in the release (#279). These builds are constructed by taking theinstall_only
variant for each platform and stripping any debug symbols. The resulting builds are significantly smaller, especially on Windows and Linux, but omit debugging symbols. Theinstall_only
builds continue to preserve such symbols.
Full Changelog: 2024071...2024072
20240725
This release was yanked as it lacks the install_only
variants.
20240713
Need help choosing which build to use? See documentation at https://gregoryszorc.com/docs/python-build-standalone/20240713/running.html.
Upgrades
- CPython 3.12.3 -> 3.12.4
Full Changelog: 2024041...2024071
20240415
Need help choosing which build to use? See documentation at https://gregoryszorc.com/docs/python-build-standalone/20240415/running.html.
Upgrades
- CPython 3.12.2 -> 3.12.3
- CPython 3.11.8 -> 3.11.9
- CPython 3.10.13 -> 3.10.14
- CPython 3.9.18 -> 3.9.19
- CPython 3.8.18 -> 3.8.19
- musl libc 1.2.4 -> 1.2.5
Breaking
- The LTO-only build are no longer published for targets which have a PGO+LTO build. Consumers of the LTO-only builds are recommended to migrate to the PTO+LTO variants (#223). Affected triples are:
aarch64-apple-darwin
,x86_64-apple-darwin
,x86_64-unknown-linux-gnu
,x86_64_v2-unknown-linux-gnu
, andx86_64_v3-unknown-linux-gnu
. - The static Windows builds have been removed. Consumers of the static Windows builds must switch to the dynamically-linked Windows builds. See #221 for why this was done.
- The dynamically-linked Windows builds are now published without a
-shared-
tag (e.g.,cpython-3.10.14+20240415-i686-pc-windows-msvc-shared-pgo-full.tar.zst
is now available ascpython-3.10.14+20240415-i686-pc-windows-msvc-pgo-full.tar.zst
). The-shared-
aliases will continue to be uploaded for now, though both assets refer to the same built artifact, and consumers are recommended to migrate to the non-shared
variant (#241).
Other
armv7-unknown-linux-gnueabi
andarmv7-unknown-linux-gnueabihf
artifacts are now published.- The build system now supports building CPython from a local source directory (rather than requiring a source tarball distribution). (#236)
Full Changelog: 2024022...2024041
20240224
Need help choosing which build to use? See documentation at https://gregoryszorc.com/docs/python-build-standalone/20240224/running.html.
- CPython 3.12.1 -> 3.12.2
- CPython 3.11.7 -> 3.11.8
- setuptools 69.0.3 -> 69.1.0
- pip 23.3.2 -> 24.0
- OpenSSL 3.0.12 -> 3.0.13
- SQLite 3.44.2 -> 3.45.1
- libffi 3.3 -> 3.4 (except on Linux musl)
- binutils 2.41 -> 2.42
- LLVM 16.0.3 -> 17.0.6 (macOS only)
- macOS LLVM toolchains now use lld to link instead of the system linker.
- The switch to the lld linker fixed a bug where Apple's system linker (
/usr/bin/ld
) didn't preserve weak symbol references during LTO. This could result in LTO'd macOS distributions crashing on older macOS versions due to a missing symbol reference. See #216 for more. - Various GitHub Actions upgraded. Now using the latest macOS runners and macOS SDKs to build. This should not affect macOS version targeting.
- macOS aarch64 distributions are now built on GitHub Actions runners instead of the author's personal M1 Mac Mini. All built artifacts are now built on GitHub Actions.
- Rework of the terminfo database on Linux distributions. ncurses now looks for the terminfo database in
/etc/terminfo
,/lib/terminfo
, and/usr/share/terminfo
by default. This should result in the terminfo database being found on many popular Linux distributions, including Debian and RedHat variants. Read: the Python REPL should respond to key presses like backspace properly. In addition, the distribution archive contains a copy of the terminfo database inpython/install/usr/share/terminfo
. However, this terminfo database won't be used automatically at runtime unless custom code is run to point ncurses at it. See the documentation for more. - Linux and macOS distributions now contain a
bin/python
symlink that points to whateverbin/python3
points to. - The file times in tar archives has been updated to UTC midnight on 2024-01-01.
20240107
- CPython 3.11.6 -> 3.11.7
- CPython 3.12.0 -> 3.12.1
- pip 23.2.1 -> 23.3.2
- setuptools 68.2.2 -> 69.0.3
- OpenSSL 3.0.11 -> 3.0.12
- SQLite 3.43.1 -> 3.44.2
- ncurses 6.3 -> 6.4
- libX11 1.6.8 -> 1.6.12
- libXau 1.0.7 -> 1.0.11
- libcxb 1.13.1 -> 1.14
- libpthread-stubs 0.1 -> 0.5
- x11-util-macros 1.19.2 -> 1.20.0
- xtrans 1.4.0 -> 1.5.0
- LLVM 17.0.1 -> 17.0.6 (Linux builds only)
- (Windows)
sys.winver
is now defined properly on CPython 3.10+ (#199) - CPython 3.8, 3.9, and 3.10 Linux distributions no longer link against
libcrypt.so.1
outside of the_crypt
extension module. This was the intended behavior of recent releases but the intended behavior was only working correctly on CPython 3.11 and 3.12. (#197) tzset()
function is now force enabled on Linux builds. Previously, cross-compiled distributions likely had it disabled. This enables thetime.tzset()
Python function to work. (#196)- On Linux and macOS, various distribution configuration files are now normalized post build to remove Clang specific compiler flags and references to build paths. e.g. on Linux, before
CFLAGS
was reported as-Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fdebug-default-version=4 -fPIC -I/tools/deps/include -I/tools/deps/include/ncursesw -I/tools/deps/libedit/include
and afterwards it is-Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC
. This change should make distributions more portable. The practical effect of this change is that build systems keying off the build settings embedded in the distribution should now have a higher probability of working if they were broken before. (#194)
20231002
- CPython 3.12.0 now supported. These distributions should be considered beta quality since it is their initial release and typically there are both upstream bugs and bugs in our packaging in the initial release. So exercise caution before deploying to production.
- CPython 3.8.17 -> 3.8.18
- CPython 3.11.5 -> 3.11.6
- OpenSSL 1.1 -> 3.0 on supported platforms. Linux and macOS now use OpenSSL 3.0.x. Windows uses OpenSSL 3.0.x on CPython 3.11+.
- OpenSSL 3.0.11
- OpenSSL 1.1.1v -> 1.1.1w
- We are no longer publishing i686-unknown-linux-gnu distributions due to lack of downloads. If this inconveniences you, please file an issue and explain how this impacts you.
- autoconf 2.69 -> 2.71
- SQLite 3.43.0 -> 3.43.1
- setuptools 68.1.2 -> 68.2.2
- LLVM 16.0.3 -> 17.0.1 on Linux (macOS held back for the moment due to compatibility issues)
- BOLT is now enabled on CPython 3.12 on Linux x86_64 non-musl targets.
20230826
20230726
- CPython 3.9.16 -> 3.9.17
- CPython 3.10.11 -> 3.10.12
- CPython 3.11.3 -> 3.11.4
- setuptools 67.7.2 -> 68.0.0
- pip 23.1.2 -> 23.2.2
- musl 1.2.3 -> 1.2.4
- OpenSSL 1.1.1s -> 1.1.1u
- SQLite 3.41.2 -> 3.42.0
- libxzma 5.2.9 -> 5.2.12
- Release artifacts for Linux s390x are now published.
_crypt
extension module is now distributed as a standalone shared library (as opposed to being statically linked in libpython). This removes a hard dependency onlibcrypt.so.1
for compatibility with modern Linux distributions. See #173 for context. Affects Linux non-musl distributions.
20230507
- CPython 3.11.1 -> 3.11.3
- CPython 3.10.9 -> 3.10.11
- pip 22.3.1 -> 23.1.2
- setuptools 65.6.3 -> 67.7.2
- Add ppc64le-unknown-linux-gnu distributions for CPython 3.9, 3.10, and 3.11
- SQLite 3.40.1 -> 3.41.2
- binutils 2.39 -> 2.40
- LLVM 15.0.7 -> 16.0.3
Note: the initial upload of this release on 2023-05-07 corrupted the release assets (#172). The assets were re-uploaded on 2023-05-14. This effectively changed the SHA-256 of all assets. We would normally treat releases as immutable. But since the initial release was fully corrupted, we decided to just delete and re-upload the assets.