Skip to content

Commit

Permalink
tags: accept mac tags without minor versions
Browse files Browse the repository at this point in the history
Signed-off-by: Filipe Laíns <lains@riseup.net>
  • Loading branch information
FFY00 committed Jul 21, 2022
1 parent 2bd5da3 commit 0a9ef80
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 2 deletions.
11 changes: 9 additions & 2 deletions packaging/tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -398,9 +398,16 @@ def mac_platforms(
compat_version = major_version, 0
binary_formats = _mac_binary_formats(compat_version, arch)
for binary_format in binary_formats:
yield "macosx_{major}_{minor}_{binary_format}".format(
major=major_version, minor=0, binary_format=binary_format
yield "macosx_{major}_{binary_format}".format(
major=major_version, binary_format=binary_format
)
# Mac OS 11 and 12 seem to omit the minor version, we will keep
# them for backwards compatibility and avoid generating tags
# with it in the future
if version < (13, 0):
yield "macosx_{major}_{minor}_{binary_format}".format(
major=major_version, minor=0, binary_format=binary_format
)

if version >= (11, 0):
# Mac OS 11 on x86_64 is compatible with binaries from previous releases.
Expand Down
20 changes: 20 additions & 0 deletions tests/test_tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,10 @@ def test_macos_11(self, major, minor):
assert "macosx_11_3_x86_64" not in platforms
assert "macosx_11_0_universal" in platforms
assert "macosx_11_0_universal2" in platforms
assert "macosx_11_arm64" not in platforms
assert "macosx_11_x86_64" in platforms
assert "macosx_11_universal" in platforms
assert "macosx_11_universal2" in platforms
# Mac OS "10.16" is the version number that binaries compiled against an old
# (pre 11.0) SDK will see. It can also be enabled explicitly for a process
# with the environment variable SYSTEM_VERSION_COMPAT=1.
Expand All @@ -319,10 +323,15 @@ def test_macos_11(self, major, minor):
assert "macosx_10_15_universal2" in platforms
assert "macosx_10_4_x86_64" in platforms
assert "macosx_10_3_x86_64" not in platforms
assert "macosx_10_x86_64" not in platforms
assert "macosx_10_universal2" not in platforms
if major >= 12:
assert "macosx_12_0_x86_64" in platforms
assert "macosx_12_0_universal" in platforms
assert "macosx_12_0_universal2" in platforms
assert "macosx_12_x86_64" in platforms
assert "macosx_12_universal" in platforms
assert "macosx_12_universal2" in platforms

platforms = list(tags.mac_platforms((major, minor), "arm64"))
assert "macosx_11_0_arm64" in platforms
Expand All @@ -333,9 +342,16 @@ def test_macos_11(self, major, minor):
assert "macosx_10_15_x86_64" not in platforms
assert "macosx_10_4_x86_64" not in platforms
assert "macosx_10_3_x86_64" not in platforms
assert "macosx_11_arm64" in platforms
assert "macosx_11_universal" not in platforms
assert "macosx_11_universal2" in platforms
assert "macosx_10_universal2" not in platforms
assert "macosx_10_x86_64" not in platforms
if major >= 12:
assert "macosx_12_0_arm64" in platforms
assert "macosx_12_0_universal2" in platforms
assert "macosx_12_arm64" in platforms
assert "macosx_12_universal2" in platforms


class TestManylinuxPlatform:
Expand Down Expand Up @@ -1041,6 +1057,10 @@ def teardown_method(self):
# Clear the version cache
tags._glibc_version = []

def test_interpreter_platform(self):
tag = sysconfig.get_platform().replace('-', '_').replace('.', '_')
assert tag in list(tags.platform_tags())

@pytest.mark.parametrize(
"name,expected",
[("CPython", "cp"), ("PyPy", "pp"), ("Jython", "jy"), ("IronPython", "ip")],
Expand Down

0 comments on commit 0a9ef80

Please sign in to comment.