Skip to content

Commit 0a9ef80

Browse files
committed
tags: accept mac tags without minor versions
Signed-off-by: Filipe Laíns <lains@riseup.net>
1 parent 2bd5da3 commit 0a9ef80

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

packaging/tags.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,9 +398,16 @@ def mac_platforms(
398398
compat_version = major_version, 0
399399
binary_formats = _mac_binary_formats(compat_version, arch)
400400
for binary_format in binary_formats:
401-
yield "macosx_{major}_{minor}_{binary_format}".format(
402-
major=major_version, minor=0, binary_format=binary_format
401+
yield "macosx_{major}_{binary_format}".format(
402+
major=major_version, binary_format=binary_format
403403
)
404+
# Mac OS 11 and 12 seem to omit the minor version, we will keep
405+
# them for backwards compatibility and avoid generating tags
406+
# with it in the future
407+
if version < (13, 0):
408+
yield "macosx_{major}_{minor}_{binary_format}".format(
409+
major=major_version, minor=0, binary_format=binary_format
410+
)
404411

405412
if version >= (11, 0):
406413
# Mac OS 11 on x86_64 is compatible with binaries from previous releases.

tests/test_tags.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,10 @@ def test_macos_11(self, major, minor):
311311
assert "macosx_11_3_x86_64" not in platforms
312312
assert "macosx_11_0_universal" in platforms
313313
assert "macosx_11_0_universal2" in platforms
314+
assert "macosx_11_arm64" not in platforms
315+
assert "macosx_11_x86_64" in platforms
316+
assert "macosx_11_universal" in platforms
317+
assert "macosx_11_universal2" in platforms
314318
# Mac OS "10.16" is the version number that binaries compiled against an old
315319
# (pre 11.0) SDK will see. It can also be enabled explicitly for a process
316320
# with the environment variable SYSTEM_VERSION_COMPAT=1.
@@ -319,10 +323,15 @@ def test_macos_11(self, major, minor):
319323
assert "macosx_10_15_universal2" in platforms
320324
assert "macosx_10_4_x86_64" in platforms
321325
assert "macosx_10_3_x86_64" not in platforms
326+
assert "macosx_10_x86_64" not in platforms
327+
assert "macosx_10_universal2" not in platforms
322328
if major >= 12:
323329
assert "macosx_12_0_x86_64" in platforms
324330
assert "macosx_12_0_universal" in platforms
325331
assert "macosx_12_0_universal2" in platforms
332+
assert "macosx_12_x86_64" in platforms
333+
assert "macosx_12_universal" in platforms
334+
assert "macosx_12_universal2" in platforms
326335

327336
platforms = list(tags.mac_platforms((major, minor), "arm64"))
328337
assert "macosx_11_0_arm64" in platforms
@@ -333,9 +342,16 @@ def test_macos_11(self, major, minor):
333342
assert "macosx_10_15_x86_64" not in platforms
334343
assert "macosx_10_4_x86_64" not in platforms
335344
assert "macosx_10_3_x86_64" not in platforms
345+
assert "macosx_11_arm64" in platforms
346+
assert "macosx_11_universal" not in platforms
347+
assert "macosx_11_universal2" in platforms
348+
assert "macosx_10_universal2" not in platforms
349+
assert "macosx_10_x86_64" not in platforms
336350
if major >= 12:
337351
assert "macosx_12_0_arm64" in platforms
338352
assert "macosx_12_0_universal2" in platforms
353+
assert "macosx_12_arm64" in platforms
354+
assert "macosx_12_universal2" in platforms
339355

340356

341357
class TestManylinuxPlatform:
@@ -1041,6 +1057,10 @@ def teardown_method(self):
10411057
# Clear the version cache
10421058
tags._glibc_version = []
10431059

1060+
def test_interpreter_platform(self):
1061+
tag = sysconfig.get_platform().replace('-', '_').replace('.', '_')
1062+
assert tag in list(tags.platform_tags())
1063+
10441064
@pytest.mark.parametrize(
10451065
"name,expected",
10461066
[("CPython", "cp"), ("PyPy", "pp"), ("Jython", "jy"), ("IronPython", "ip")],

0 commit comments

Comments
 (0)