Skip to content

Comments

Support iOS platform tags#15640

Merged
charliermarsh merged 1 commit intoastral-sh:mainfrom
timrid:ios-support
Sep 3, 2025
Merged

Support iOS platform tags#15640
charliermarsh merged 1 commit intoastral-sh:mainfrom
timrid:ios-support

Conversation

@timrid
Copy link
Contributor

@timrid timrid commented Sep 2, 2025

Summary

This implements the iOS part of #8029

FYI: @freakboy3742

Test Plan

Create a venv with uv and run cargo run pip install --python-platform arm64-apple-ios pillow. Then the iOS binary of pillow should be installed inside the venv.

@zanieb zanieb requested a review from konstin September 2, 2025 21:27
@charliermarsh
Copy link
Member

Thanks for contributing!

major,
minor,
multiarch,
} => write!(f, "ios_{major}_{minor}_{multiarch}"),
Copy link
Contributor Author

@timrid timrid Sep 3, 2025

Choose a reason for hiding this comment

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

@freakboy3742 Is multiarch the correct name in ios_{major}_{minor}_{multiarch}? I took it from here, but here it is called arch_sdk, so I am unsure what is a better name. If changing from multiarch to arch_sdk the Enum name IosMultiarch has also to be renamed to IosArchSdk.

Choose a reason for hiding this comment

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

The second link you've provided has a clarification a little further down:

The combination of arch_sdk is referred to as the “multiarch”.

That is "multi arch" is the combination of the arch, followed by the sdk. arch will be arm64 or x86_64; sdk will be iphoneos or iphonesimulator; and multiarch will end up being one of arm64_iphoneos, arm64_iphonesimulator or x86_64_iphonesimulator.

So - if you're defining a constant for the entire "content after major and minor", it would be called "multiarch"; but if you were to break it down further, you could have independent constants for "arch" and "sdk"; but you wouldn't have an "arch_sdk".

In the context, I don't think there's a lot of use for splitting multiarch into its constituent parts; if only because you could accidentlly construct x86_64_iphoneos, which won't be (and is unlikely to ever be) legal.

So - my suggestion would be to keep the constant as currently defined.

@charliermarsh
Copy link
Member

@timrid -- Do you mind rebasing?

Squashed commits:
[62cbbc8] fixed fmt
[6baa776] add link to source of ios multiarch
[8d3179e] add structured error
[8ac4d83] add docs hint for IPHONEOS_DEPLOYMENT_TARGET and fixed the macOS min version
[a78cc23] update cli docs
[711d642] update uv schema
[030ac5e] fixed some clippy issues
[f3039f9] some type hints + run auto formater
[714926d] some minor fixes and added docs
[bed587f] add 'compatible_tags' for ios
[10077b2] added mutliarch enum for ios
[a17a331] use arch instead of binary format
[a1120e9] added ios platform tags
[9cc34b0] fixed ios target triple
[de64f1d] add initial ios support
Copy link
Member

@charliermarsh charliermarsh left a comment

Choose a reason for hiding this comment

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

This is great, thanks.

@charliermarsh charliermarsh merged commit 330e56e into astral-sh:main Sep 3, 2025
96 checks passed
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Sep 12, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [astral-sh/uv](https://github.com/astral-sh/uv) | patch | `0.8.15` -> `0.8.17` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>astral-sh/uv (astral-sh/uv)</summary>

### [`v0.8.17`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0817)

[Compare Source](astral-sh/uv@0.8.16...0.8.17)

Released on 2025-09-10.

##### Enhancements

- Improve error message for HTTP validation in auth services ([#&#8203;15768](astral-sh/uv#15768))
- Respect `PYX_API_URL` when suggesting `uv auth login` on 401 ([#&#8203;15774](astral-sh/uv#15774))
- Add pyx as a supported PyTorch index URL ([#&#8203;15769](astral-sh/uv#15769))

##### Bug fixes

- Avoid initiating login flow for invalid API keys ([#&#8203;15773](astral-sh/uv#15773))
- Do not search for a password for requests with a token attached already ([#&#8203;15772](astral-sh/uv#15772))
- Filter pre-release Python versions in `uv init --script` ([#&#8203;15747](astral-sh/uv#15747))

### [`v0.8.16`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0816)

[Compare Source](astral-sh/uv@0.8.15...0.8.16)

##### Enhancements

- Allow `--editable` to override `editable = false` annotations ([#&#8203;15712](astral-sh/uv#15712))
- Allow `editable = false` for workspace sources ([#&#8203;15708](astral-sh/uv#15708))
- Show a dedicated error for virtual environments in source trees on build ([#&#8203;15748](astral-sh/uv#15748))
- Support Android platform tags ([#&#8203;15646](astral-sh/uv#15646))
- Support iOS platform tags ([#&#8203;15640](astral-sh/uv#15640))
- Support scripts with inline metadata in `--with-requirements` and `--requirements` ([#&#8203;12763](astral-sh/uv#12763))

##### Preview features

- Support `--no-project` in `uv format` ([#&#8203;15572](astral-sh/uv#15572))
- Allow `uv format` in unmanaged projects ([#&#8203;15553](astral-sh/uv#15553))

##### Bug fixes

- Avoid erroring when `match-runtime` target is optional ([#&#8203;15671](astral-sh/uv#15671))
- Ban empty usernames and passwords in `uv auth` ([#&#8203;15743](astral-sh/uv#15743))
- Error early for parent path in build backend ([#&#8203;15733](astral-sh/uv#15733))
- Retry on IO errors during HTTP/2 streaming ([#&#8203;15675](astral-sh/uv#15675))
- Support recursive requirements and constraints inclusion ([#&#8203;15657](astral-sh/uv#15657))
- Use token store credentials for `uv publish` ([#&#8203;15759](astral-sh/uv#15759))
- Fix virtual environment activation script compatibility with latest nushell ([#&#8203;15272](astral-sh/uv#15272))
- Skip Python interpreters that cannot be queried with permission errors ([#&#8203;15685](astral-sh/uv#15685))

##### Documentation

- Clarify that `uv auth` commands take a URL ([#&#8203;15664](astral-sh/uv#15664))
- Improve the CLI help for options that accept requirements files ([#&#8203;15706](astral-sh/uv#15706))
- Adds example for caching for managed Python downloads in Docker builds ([#&#8203;15689](astral-sh/uv#15689))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45OC4xIiwidXBkYXRlZEluVmVyIjoiNDEuOTkuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
konstin added a commit that referenced this pull request Nov 12, 2025
iOS support exist nominally
(#15640), but Python discovery
currently fails.
@timrid timrid mentioned this pull request Feb 14, 2026
@timrid timrid deleted the ios-support branch February 14, 2026 22:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants