python-poetry / python-poetry/poetry
Macos wheels use current system instead of minimum compatible system as plaftform tag
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 34.3k
- Forks
- 2.5k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 30
Description
- I have searched the issues of this repo and believe that this is not a duplicate.
- I have searched the documentation and believe that my question is not covered.
Feature Request
I noticed a difference between how bdist_wheel from the wheel package choose the platform tag on macos and how poetry-core does it.
In poetry-core:
tag = (sys_tag.interpreter, sys_tag.abi, sys_tag.platform)
Where sys_tag.platform comes from packaging.tags.sys_tags.
In wheel:
plat_name = get_platform(self.bdist_dir)
Where get_platform() calls calculate_macosx_platform_tag.
This routine loop through all .dylib and .so files in the wheel and get the minimum macos system version using extract_macosx_min_system_version.
This allows build systems such as cibuildwheel on github actions to build wheels using macos-latest that are compatible with old systems (see an example here).
It would be nice if poetry could provide the same kind of thing :) Packaging is complicated though, so I might be missing something.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review the referenced poetry-core wheel builder around wheel.py and compare its sys_tags platform handling with wheel's get_platform and macOS helpers, especially calculate_macosx_platform_tag and extract_macosx_min_system_version. Done means Poetry-generated macOS wheels use the minimum compatible system version from their contents rather than only the current system platform tag.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100