]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-153872: macOS: free-threading support is installed by default on Python 3.15 ...
authorHugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Wed, 22 Jul 2026 12:09:55 +0000 (15:09 +0300)
committerGitHub <noreply@github.com>
Wed, 22 Jul 2026 12:09:55 +0000 (15:09 +0300)
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Doc/using/mac.rst
Doc/using/mac_installer_01_introduction.png
Doc/using/mac_installer_02_readme.png
Doc/using/mac_installer_03_license.png
Doc/using/mac_installer_04_installation_type.png
Doc/using/mac_installer_05_custom_install.png
Doc/using/mac_installer_06_summary.png
Doc/using/mac_installer_07_applications.png
Doc/using/mac_installer_08_install_certificates.png
Doc/using/mac_installer_09_custom_install_free_threaded.png

index 6cf945de5b3f3b426f7726a806eee612ddda6f42..a01dabbf2475aa4931201a8a442c5e7cf82a09bd 100644 (file)
@@ -29,8 +29,8 @@ Installation steps
 For `current Python versions <https://www.python.org/downloads/>`_
 (other than those in ``security`` status), the release team produces a
 **Python for macOS** installer package for each new release.
-A list of available installers
-is available `here <https://www.python.org/downloads/macos/>`_.
+A list of available installers is provided on the
+`macOS downloads page <https://www.python.org/downloads/macos/>`__.
 We recommend using the most recent supported Python version where possible.
 Current installers provide a
 `universal2 binary <https://en.wikipedia.org/wiki/Universal_binary>`_ build
@@ -39,14 +39,14 @@ supported by a wide range of macOS versions,
 currently typically from at least **macOS 10.15 Catalina** on.
 
 The downloaded file is a standard macOS installer package file (``.pkg``).
-File integrity information (checksum, size, sigstore signature, etc) for each file is included
+File integrity information (such as checksum, size, and Sigstore signature) for each file is included
 on the release download page. Installer packages and their contents are signed and notarized
 with ``Python Software Foundation`` Apple Developer ID certificates
 to meet `macOS Gatekeeper requirements <https://support.apple.com/en-us/102445>`_.
 
 For a default installation, double-click on the downloaded installer package file.
 This should launch the standard macOS Installer app and display the first of several
-installer windows steps.
+installer steps.
 
 .. image:: mac_installer_01_introduction.png
 
@@ -73,8 +73,8 @@ display. For most uses, the standard set of installation operations is appropria
 By pressing the **Customize** button, you can choose to omit or select certain package
 components of the installer. Click on each package name to see a description of
 what it installs.
-To also install support for the optional free-threaded feature,
-see :ref:`install-freethreaded-macos`.
+For details of the optional free-threaded feature, which is installed
+by default, see :ref:`install-freethreaded-macos`.
 
 .. image:: mac_installer_05_custom_install.png
 
@@ -98,7 +98,7 @@ for its use.
 
 .. image:: mac_installer_08_install_certificates.png
 
-If ``Successfully installed certifi`` and ``update complete`` appears
+If ``Successfully installed certifi`` and ``update complete`` appear
 in the terminal window, the installation is complete.
 Close this terminal window and the installer window.
 
@@ -171,7 +171,7 @@ be certain of what you are about to run.
 
 .. _alternative_bundles:
 
-Alternative Distributions
+Alternative distributions
 =========================
 
 Besides the standard ``python.org`` for macOS installer, there are third-party
@@ -199,7 +199,7 @@ other libraries, and are not maintained or supported by the core Python team.
 
 .. _mac-package-manager:
 
-Installing Additional Python Packages
+Installing additional Python packages
 =====================================
 
 Refer to the `Python Packaging User Guide`_ for more information.
@@ -211,7 +211,7 @@ Refer to the `Python Packaging User Guide`_ for more information.
 
 .. _gui-programming-on-the-mac:
 
-GUI Programming
+GUI programming
 ===============
 
 There are several options for building GUI applications on the Mac with Python.
@@ -241,19 +241,22 @@ A number of alternative macOS GUI toolkits are available including:
   supports desktop operating systems.
 
 
-Advanced Topics
+Advanced topics
 ===============
 
 .. _install-freethreaded-macos:
 
-Installing Free-threaded Binaries
+Installing free-threaded binaries
 ---------------------------------
 
 .. versionadded:: 3.13
 
+.. versionchanged:: 3.15
+   Free-threading support is now installed by default.
+
 The ``python.org`` :ref:`Python for macOS <getting-and-installing-macpython>`
-installer package can optionally install an additional build of
-Python |version| that supports :pep:`703`, the free-threading feature
+installer package installs, by default, an additional build of
+Python |version| that supports :term:`free threading`
 (running with the :term:`global interpreter lock` disabled).
 Check the release page on ``python.org`` for possible updated information.
 
@@ -262,14 +265,15 @@ there is some additional overhead in single-threaded workloads compared
 to the regular build. Additionally, third-party packages, in particular ones
 with an :term:`extension module`, may not be ready for use in a
 free-threaded build, and will re-enable the :term:`GIL`.
-Therefore, the support for free-threading
-is not installed by default. It is packaged as a separate install option,
-available by clicking the **Customize** button on the **Installation Type**
+As of Python 3.15, free-threading support is installed by default.
+It is packaged as a separate install option, which can be deselected
+by clicking the **Customize** button on the **Installation Type**
 step of the installer as described above.
 
 .. image:: mac_installer_09_custom_install_free_threaded.png
 
-If the box next to the **Free-threaded Python** package name is checked,
+If the box next to the **Free-threaded Python** package name is checked
+(as it is by default),
 a separate :file:`PythonT.framework` will also be installed
 alongside the normal :file:`Python.framework` in :file:`/Library/Frameworks`.
 This configuration allows a free-threaded Python |version| build to co-exist
@@ -284,7 +288,7 @@ Known cautions and limitations:
   the free-threaded interpreter, and |python_x_dot_y_t_literal_config|,
   a configuration utility which may be useful for package builders.
   Since :file:`/usr/local/bin` is typically included in your shell ``PATH``,
-  in most cases no changes to your ``PATH`` environment variables should
+  in most cases no changes to your ``PATH`` environment variable should
   be needed to use |python_x_dot_y_t_literal|.
 
 - For this release, the **Shell profile updater** package and the
@@ -367,8 +371,8 @@ the macOS command line :command:`installer` utility lets you select non-default
 options, too. If you are not familiar with :command:`installer`, it can be
 somewhat cryptic (see :command:`man installer` for more information).
 As an example, the following shell snippet shows one way to do it,
-using the |x_dot_y_b2_literal| release and selecting the free-threaded interpreter
-option:
+using the |x_dot_y_b2_literal| release and deselecting the free-threaded
+interpreter option:
 
 .. parsed-literal::
 
@@ -378,7 +382,7 @@ option:
     curl -O \https://www.python.org/ftp/python/\ |version|\ .0/${RELEASE}
 
     # create installer choicechanges to customize the install:
-    #    enable the PythonTFramework-\ |version|\  package
+    #    disable the PythonTFramework-\ |version|\  package
     #    while accepting the other defaults (install all other packages)
     cat > ./choicechanges.plist <<EOF
     <?xml version="1.0" encoding="UTF-8"?>
@@ -387,7 +391,7 @@ option:
     <array>
             <dict>
                     <key>attributeSetting</key>
-                    <integer>1</integer>
+                    <integer>0</integer>
                     <key>choiceAttribute</key>
                     <string>selected</string>
                     <key>choiceIdentifier</key>
@@ -400,7 +404,7 @@ option:
     sudo installer -pkg ./${RELEASE} -applyChoiceChangesXML ./choicechanges.plist -target /
 
 
-You can then test that both installer builds are now available with something like:
+After a default install, you can test that both builds are available with something like:
 
 .. parsed-literal::
 
@@ -425,7 +429,7 @@ You can then test that both installer builds are now available with something li
 
 .. _distributing-python-applications-on-the-mac:
 
-Distributing Python Applications
+Distributing Python applications
 --------------------------------
 
 A range of tools exist for converting your Python code into a standalone
@@ -442,7 +446,7 @@ distributable application:
 * `PyInstaller <https://pyinstaller.org/>`_: A cross-platform packaging tool that creates
   a single file or folder as a distributable artifact.
 
-App Store Compliance
+App Store compliance
 --------------------
 
 Apps submitted for distribution through the macOS App Store must pass Apple's
@@ -464,7 +468,7 @@ This patch is not normally required to use CPython on a Mac; nor is it required
 if you are distributing an app *outside* the macOS App Store. It is *only*
 required if you are using the macOS App Store as a distribution channel.
 
-Other Resources
+Other resources
 ===============
 
 The `python.org Help page <https://www.python.org/about/help/>`_ has links to many useful resources.
index 1999f3a37590933a4ca77774d51bfc06e9322010..81e1f4e5ac5c32e6c33cb5ebb8e36bd07d780a83 100644 (file)
Binary files a/Doc/using/mac_installer_01_introduction.png and b/Doc/using/mac_installer_01_introduction.png differ
index a36efaf7d50fd6a29762f6bcd1c311db36ba511b..7e4a9b15cf94f6acf37dec18a985a5adfa5bf99e 100644 (file)
Binary files a/Doc/using/mac_installer_02_readme.png and b/Doc/using/mac_installer_02_readme.png differ
index 598c22a13d9e62e55d5b85b89d4e205a9830e9ad..153daa780efa9e996b63ce36c3e65d01260cad74 100644 (file)
Binary files a/Doc/using/mac_installer_03_license.png and b/Doc/using/mac_installer_03_license.png differ
index 9498fd06240a4ed3821a31ca4f194a0fdcd647f2..1fc597c2427ab7663647f3daa3ed71242fe99911 100644 (file)
Binary files a/Doc/using/mac_installer_04_installation_type.png and b/Doc/using/mac_installer_04_installation_type.png differ
index 3a201d2f44655af4908048e3b9f92f2e267f1ddb..c70d93bbcee70a888a5c2a1b6d19506e024caa41 100644 (file)
Binary files a/Doc/using/mac_installer_05_custom_install.png and b/Doc/using/mac_installer_05_custom_install.png differ
index 1af6eee2c668cdbeb51fde0b84580ae38b83bbbd..f8a67052ef044795cc835c91d491c25d46790bf5 100644 (file)
Binary files a/Doc/using/mac_installer_06_summary.png and b/Doc/using/mac_installer_06_summary.png differ
index c8b3aa1099adfc95fc2cc12c336942ee6b9ebd9f..c39741f33ac807f9ca5cebed692b5f024d3295fc 100644 (file)
Binary files a/Doc/using/mac_installer_07_applications.png and b/Doc/using/mac_installer_07_applications.png differ
index c125eeb18aa0c140893a7e1825f059adbd2a759a..f476c7f37d245d6ed5379e42e99f6c048c96b43d 100644 (file)
Binary files a/Doc/using/mac_installer_08_install_certificates.png and b/Doc/using/mac_installer_08_install_certificates.png differ
index 0f69c55eddb228bac62345bded45b539003af6ea..e867e422e42e4850091f82373e123d1da817c3de 100644 (file)
Binary files a/Doc/using/mac_installer_09_custom_install_free_threaded.png and b/Doc/using/mac_installer_09_custom_install_free_threaded.png differ