Releases: astral-sh/python-build-standalone
20221106
Need help choosing which build to use? See documentation at https://gregoryszorc.com/docs/python-build-standalone/20221106/running.html.
- CPython 3.10.7 -> 3.10.8
- CPython 3.9.14 -> 3.9.15
- CPython 3.8.14 -> 3.8.15
- setuptools 65.4.1 -> 65.5.1
- pip 22.2.2 -> 22.3.1
- OpenSSL 1.1.1q -> 1.1.1s
- zlib 1.2.12 -> 1.2.13
- xz 5.2.5 -> 5.2.6
20221002
Need help choosing which build to use? See documentation at https://gregoryszorc.com/docs/python-build-standalone/20221002/running.html.
- CPython 3.8.13 -> 3.8.14
- CPython 3.9.13 -> 3.9.14
- CPython 3.10.6 -> 3.10.7
- setuptools 63.2.0 -> 65.4.1
- pip 22.2.1 -> 22.2.2
- SQLite 3.39.2 -> 3.39.4
20220802
Need help choosing which build to use? See documentation at https://gregoryszorc.com/docs/python-build-standalone/20220802/running.html.
- CPython 3.10 upgraded from 3.10.5 to 3.10.6.
- pip upgraded from 22.1.2 to 22.2.1.
- setuptools upgraded from 62.6.0 to 63.2.0.
- The
pythonX.Y-config
shell script no longer has its shebang rewritten to use a Python interpreter. (#136) - Documentation added for missing
libcrypt.so.1
(#113) - Initial support for
aarch64-unknown-linux-gnu
Python 3.8 builds. These builds are not very well tested but we're optimistic they work. - OpenSSL upgraded from 1.1.1p to 1.1.1q.
- SQLite upgraded from 3.39.0 to 3.39.2.
- Static libpython library removed from the
install_only
archives. - Python stdlib test modules removed from the
install_only
archives. (These are the stdlib's actual unit tests, not packages likeunittest
related to testing.) Theinstall_only
archives are significantly smaller as a result. (#134)
20220630
Need help choosing which build to use? See documentation at https://gregoryszorc.com/docs/python-build-standalone/20220630/running.html.
- CPython 3.10.4 upgraded to 3.10.5.
- OpenSSL upgraded from 1.1.1o to 1.1.1p.
- SQLite upgraded from 3.38.5 to 3.39.0.
- setuptools upgraded from 62.3.2 to 62.6.0.
- pip upgraded from 21.1.1 to 21.1.2.
- Changed tkinter link settings on macOS to fix a segfault (#132). This fixes a regression from the 20220222 release.
20220528
Need help choosing which build to use? See documentation at https://python-build-standalone.readthedocs.io/en/latest/running.html.
- CPython 3.9.12 upgraded to 3.9.13
- setuptools upgraded from 62.1.0 to 62.3.2
- pip upgraded from 22.0.4 to 22.1.1
- SQLite upgraded from 3.38.3 to 3.38.5
- OpenSSL upgraded from 1.1.1n to 1.1.1o
- SQLite extension loading feature is now enabled
- ncurses and libffi license texts were refreshed to be in sync with their current version. This only effectively changed copyright years.
- readline license is now annotated as
GPL-3.0-only
instead of the deprecatedGPL-3.0
SPDX expression. - Clang toolchains are now downloaded from https://github.com/indygreg/toolchain-tools instead of built from source.
- Documentation updates around target triples and which distributions to use.
20220502
Need help choosing which build to use? See documentation at https://python-build-standalone.readthedocs.io/en/latest/running.html.
- CPython 3.9 upgraded from 3.9.11 to 3.9.12
- CPython 3.10 upgraded from 3.10.3 to 3.10.4
- setuptools upgraded from 60.9.3 to 62.1.0.
- Python 3.8 distributions on macOS no longer use most weakly linked symbols. Previously, CPython weakly linked some symbols only present on macOS 10.10+. (Our x86-64 builds target macOS 10.9.) However, CPython doesn't have proper runtime guards for using the weakly linked symbols until 3.9. If Python attempted to resolve a weakly linked symbol (e.g. by attempting to call a function), the program could crash. This should no longer occur. We believe Python 3.9 and 3.10 correctly handle weakly linked symbols. What this means in practice is our Python 3.8 x86-64 builds should no longer crash when run on older macOS versions. See #122 for more context.
- LLVM/Clang upgraded from 13.0.1 to 14.0.3.
- CPython license file was synchronized from the latest version of 3.10.
- Distributions for Apple targets no longer link against a custom zlib and instead always use the system zlib library. Before, there were multiple copies of zlib being used by these distributions.
- musl libc upgraded from 1.2.2 to 1.2.3.
- SQLite upgraded from 3.38.1 to 3.38.3.
- zlib upgraded from 1.2.11 to 1.2.12.
- Linux and macOS distributions no longer export symbols from dependencies. Previously,
libpython
would export thousands of symbols belonging to dependencies like SQLite and OpenSSL. Another binary loaded into the process could potentially resolve these symbols to the copy inlibpython
. After, these symbols should not be visible/bindable outsidelibpython
and other binaries that use them directly. See #114 for more context. - The Rust code for validating Python distributions has been significantly overhauled. The most notable change is macOS Mach-O binaries now have their symbols validated against macOS SDKs. We now parse
.tbd
YAML files in the macOS SDKs and ensure that every symbol referenced by Mach-O binaries is provided by all macOS versions the binary purports to support. Symbol validation against macOS 10.9 is not performed because its SDK doesn't have TBD files. - Various missing dependencies in the
Makefile
based build system have been fixed. - The Clang toolchain has been put on a diet and no longer includes LLVM projects that we don't utilize. This makes Clang builds faster and smaller.
20220318
20220227
- SQLite upgraded from 3.37.2.0 to 3.38.0.0.
- setuptools upgraded from 60.8.2 to 60.9.3.
- The
_tkinter
extension module now links against theQuartzCore
framework on macOS. The extension module likely worked before but the missing link annotation could result in problems if the build artifacts were relinked. - Windows distributions now properly annotate their dependence on
pathcch
andshlwapi
. - The release machinery has been overhauled.
- Install only archives are now created at release time instead of in CI.
install_only.tar.gz
archives are now published for every released target architecture.- The full
.tar.zst
archives now have a-full
suffix to denote them as such. - The release artifact filename now has the form
cpython-<version>+<tag>-<triple>-<build>-<archive variant>
instead ofcpython-<version>-<triple>-<build>-<archive variant>-<timestamp>
. - There are
*.sha256
files published for each release archive containing the SHA-256 of that archive. - There is a
SHA256SUMS
file published containing the SHA-256 of every file in the release.
20220222
- Python extension suffix in
PYTHON.json
files are now correct when cross-compiling. - CPython distributions upgraded from 3.9.7 to 3.9.10 and 3.10.0 to 3.10.2.
- setuptools upgraded from 58.1.0 to 60.8.2.
- pip upgraded from 21.2.4 to 22.0.3.
- Windows Python 3.8 distributions now work on Windows 7.
shlwapi
links annotation removed from Windows CPython 3.9 distributions.- Windows distributions now all use libffi 3.4.2. This is different from official CPython distributions, which only use libffi 3.4.2 on Python 3.11+.
- tcl/tk upgraded from 8.6.10 to 8.6.12.
- Tix has been removed from macOS due to compilation errors.
- SQLite upgraded from 3.36.0 to 3.37.2.
- OpenSSL upgraded from 1.1.1l to 1.1.1m.
- ncurses upgraded from 6.2 to 6.3.
- readline upgraded from 8.1 to 8.1.2.
- binutils upgraded from 2.37 to 2.38.
- clang upgraded from 13.0.0 to 13.0.1.
- Added target triples
x86_64_v2-unknown-linux-gnu
,x86_64_v3-unknown-linux-gnu
,x86_64_v4-unknown-linux-gnu
,x86_64_v2-unknown-linux-musl
,x86_64_v3-unknown-linux-musl
, andx86_64_v4-unknown-linux-musl
. These targets contain more x86-64 instructions for more modern CPUs and result in faster performance of the Python interpreter. The trade-off is that these binaries won't run on ~every x86-64 CPU manufactured. Most x86-64 CPUs in use today supportv2
and CPUs manufactured since the Intel Haswell era supportv3
.v4
requires AVX-512 instructions and requires a CPU manufactured in the past few years.
20211017
x86_64-apple-darwin
distributions are now compiled against macOS SDK 11.1 (downgraded from 11.3). This restores build compatibility with Xcode present in many macOS 10.15 environments.- LLVM/Clang upgraded from 12.0.1 to 13.0.0.
PYTHON.json
files now properly annotate system library and framework linking requirements for the Python core. Previously, only extensions had their link requirements annotated. This missing annotations meant that it was possible for some libraries to not be linked explicitly and for there to be missing libraries/symbols at link time.xcb-proto
upgraded from 1.13 to 1.14.1.- Linux binaries no longer use
pthread_yield()
, ensuring they re-link with glibc 2.34, which deprecated this symbol. (Due to glibc symbol visibility, older distributions will run on glibc 2.34+: they just couldn't be re-linked against 2.34+.)
This release was made a few days after 20211012 and is more tested than that release. It's release notes may be worth reading.