Skip to content

Releases: astral-sh/python-build-standalone

20221106

06 Nov 19:45
Compare
Choose a tag to compare

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

03 Oct 02:27
Compare
Choose a tag to compare

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

03 Aug 03:30
Compare
Choose a tag to compare

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 like unittest related to testing.) The install_only archives are significantly smaller as a result. (#134)

20220630

01 Jul 00:50
Compare
Choose a tag to compare

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

28 May 22:17
Compare
Choose a tag to compare

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 deprecated GPL-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

03 May 04:57
Compare
Choose a tag to compare

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 in libpython. After, these symbols should not be visible/bindable outside libpython 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

19 Mar 00:40
Compare
Choose a tag to compare
  • CPython upgraded from 3.10.2 to 3.10.3.
  • CPython upgraded from 3.9.10 to 3.9.11.
  • CPython upgraded from 3.8.12 to 3.8.13.
  • OpenSSL upgraded from 1.1.1m to 1.1.1n.
  • Pip upgraded from 22.0.3 to 22.0.4.
  • SQLite upgraded from 3.38.0 to 3.38.1.

20220227

27 Feb 18:35
Compare
Choose a tag to compare
  • 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 the QuartzCore 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 and shlwapi.
  • 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 of cpython-<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

26 Feb 18:29
Compare
Choose a tag to compare
  • 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, and x86_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 support v2 and CPUs manufactured since the Intel Haswell era support v3. v4 requires AVX-512 instructions and requires a CPU manufactured in the past few years.

20211017

17 Oct 21:34
Compare
Choose a tag to compare
  • 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.