Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions source/specifications/platform-compatibility-tags.rst
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,11 @@ decide how to best use the ABI tag.
Platform Tag
============

.. important::
Platform tags are dependent on the versioning of the operating system or
platform they represent and may change over time as the underlying platform
changes its versioning.
Comment on lines +85 to +88
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically, some parts are bound by PEPs while others were defined by packaging, while again others are defined here at all (e.g., BSDs), but platforms authors are not bound by PEPs and may make changes counter to PEP assumptions. The new macOS versioning is an example of where Apple made a change counter to packaging spec assumptions, and packaging had to adapt.


Basic platform tags
-------------------

Expand Down Expand Up @@ -199,13 +204,13 @@ artefact of Apple's official macOS naming scheme). The schema for compatibility
tags is :file:`macosx_{x}_{y}_{arch}`, indicating that the wheel is compatible
with macOS ``x.y`` or later on the architecture ``arch``.

The values of ``x`` and ``y`` correspond to the major and minor version number
of the macOS release, respectively. They must both be positive integers, with
the ``x`` value being either ``10 <= x <= 15``, or ``>=26`` and corresponding
to the year of the macOS release. The version number always includes a major
*and* minor version, even if Apple's official version numbering only refers to
the major value. For example, ``macosx_11_0_arm64`` indicates compatibility
with macOS 11 or later.
For macOS 10, the tag is :file:`macosx_10_{y}_{arch}`, where ``y`` corresponds
to the minor version number of the macOS release. For macOS 11 and higher, the
tag is :file:`macosx_{x}_0_{arch}`, where ``x`` corresponds to the major
version number of the macOS release. Following the published macOS major
versions, the ``x`` value is either ``10 <= x <= 15``, or ``>=26`` and
corresponding to the year of the macOS release. For example,
``macosx_11_0_arm64`` indicates compatibility with macOS 11 or later.

macOS binaries can be compiled for a single architecture, or can include support
for multiple architectures in the same binary (sometimes called "fat" binaries).
Expand Down