https://github.com/python/cpython/commit/771abfe06f1f04abf1065d3525d2a1c84566058a
commit: 771abfe06f1f04abf1065d3525d2a1c84566058a
branch: main
author: Hugo van Kemenade <[email protected]>
committer: hugovk <[email protected]>
date: 2026-07-22T15:09:55+03:00
summary:

gh-153872: macOS: free-threading support is installed by default on Python 3.15 
(#154103)

Co-authored-by: Petr Viktorin <[email protected]>

files:
M Doc/using/mac.rst
M Doc/using/mac_installer_01_introduction.png
M Doc/using/mac_installer_02_readme.png
M Doc/using/mac_installer_03_license.png
M Doc/using/mac_installer_04_installation_type.png
M Doc/using/mac_installer_05_custom_install.png
M Doc/using/mac_installer_06_summary.png
M Doc/using/mac_installer_07_applications.png
M Doc/using/mac_installer_08_install_certificates.png
M Doc/using/mac_installer_09_custom_install_free_threaded.png

diff --git a/Doc/using/mac.rst b/Doc/using/mac.rst
index 6cf945de5b3f3b4..a01dabbf2475aa4 100644
--- a/Doc/using/mac.rst
+++ b/Doc/using/mac.rst
@@ -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.
diff --git a/Doc/using/mac_installer_01_introduction.png 
b/Doc/using/mac_installer_01_introduction.png
index 1999f3a37590933..81e1f4e5ac5c32e 100644
Binary files a/Doc/using/mac_installer_01_introduction.png and 
b/Doc/using/mac_installer_01_introduction.png differ
diff --git a/Doc/using/mac_installer_02_readme.png 
b/Doc/using/mac_installer_02_readme.png
index a36efaf7d50fd6a..7e4a9b15cf94f6a 100644
Binary files a/Doc/using/mac_installer_02_readme.png and 
b/Doc/using/mac_installer_02_readme.png differ
diff --git a/Doc/using/mac_installer_03_license.png 
b/Doc/using/mac_installer_03_license.png
index 598c22a13d9e62e..153daa780efa9e9 100644
Binary files a/Doc/using/mac_installer_03_license.png and 
b/Doc/using/mac_installer_03_license.png differ
diff --git a/Doc/using/mac_installer_04_installation_type.png 
b/Doc/using/mac_installer_04_installation_type.png
index 9498fd06240a4ed..1fc597c2427ab76 100644
Binary files a/Doc/using/mac_installer_04_installation_type.png and 
b/Doc/using/mac_installer_04_installation_type.png differ
diff --git a/Doc/using/mac_installer_05_custom_install.png 
b/Doc/using/mac_installer_05_custom_install.png
index 3a201d2f44655af..c70d93bbcee70a8 100644
Binary files a/Doc/using/mac_installer_05_custom_install.png and 
b/Doc/using/mac_installer_05_custom_install.png differ
diff --git a/Doc/using/mac_installer_06_summary.png 
b/Doc/using/mac_installer_06_summary.png
index 1af6eee2c668cdb..f8a67052ef04479 100644
Binary files a/Doc/using/mac_installer_06_summary.png and 
b/Doc/using/mac_installer_06_summary.png differ
diff --git a/Doc/using/mac_installer_07_applications.png 
b/Doc/using/mac_installer_07_applications.png
index c8b3aa1099adfc9..c39741f33ac807f 100644
Binary files a/Doc/using/mac_installer_07_applications.png and 
b/Doc/using/mac_installer_07_applications.png differ
diff --git a/Doc/using/mac_installer_08_install_certificates.png 
b/Doc/using/mac_installer_08_install_certificates.png
index c125eeb18aa0c14..f476c7f37d245d6 100644
Binary files a/Doc/using/mac_installer_08_install_certificates.png and 
b/Doc/using/mac_installer_08_install_certificates.png differ
diff --git a/Doc/using/mac_installer_09_custom_install_free_threaded.png 
b/Doc/using/mac_installer_09_custom_install_free_threaded.png
index 0f69c55eddb228b..e867e422e42e485 100644
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

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to