Skip to content

Add --python-platform riscv64-unknown-linux to various commands#15630

Merged
Gankra merged 1 commit intoastral-sh:mainfrom
directhex:dev/dhx/riscv64-target
Sep 2, 2025
Merged

Add --python-platform riscv64-unknown-linux to various commands#15630
Gankra merged 1 commit intoastral-sh:mainfrom
directhex:dev/dhx/riscv64-target

Conversation

@directhex
Copy link
Contributor

Summary

We (and I'm sure many others) are currently doing a lot of RISC-V work in QEMU. It is possible to significantly improve the speed of Python-related builds by taking care of the environment setup using an AMD64 uv binary (bypassing binfmt/qemu-system emulation).

Some approx numbers from local testing in riscv64 Ubuntu in QEMU:

Resolver arch Command Time
riscv64 pip install --upgrade --break-system-packages --index-url=https://gitlab.com/api/v4/projects/riseproject%2Fpython%2Fwheel_builder/packages/pypi/simple openai-harmony 15s
riscv64 uv pip install --upgrade --system --break-system-packages --index-url=https://gitlab.com/api/v4/projects/riseproject%2Fpython%2Fwheel_builder/packages/pypi/simple openai-harmony 5s
amd64 uv pip install --python-platform=riscv64-unknown-linux --upgrade --system --break-system-packages --index-url=https://gitlab.com/api/v4/projects/riseproject%2Fpython%2Fwheel_builder/packages/pypi/simple openai-harmony 4s

The numbers from some larger internal packages with deeper dependency trees are much more pronounced - 3m6 vs 43s vs 8s, in one example.

Manylinux 2.39 is specified, as it's the first (only?) RISC-V manylinux

Test Plan

Locally, in QEMU.

$ docker run --platform linux/riscv64 -it ubuntu:latest, get amd64 libc into LD_LIBRARY_PATH, tests as above

@directhex directhex force-pushed the dev/dhx/riscv64-target branch from cde58c6 to 13b96a1 Compare September 2, 2025 15:09
@directhex directhex force-pushed the dev/dhx/riscv64-target branch from 13b96a1 to 5e17f88 Compare September 2, 2025 15:14
Copy link
Contributor

@Gankra Gankra left a comment

Choose a reason for hiding this comment

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

seems wholy uncontroversial, thanks!

@Gankra Gankra added enhancement New feature or improvement to existing functionality cli Related to the command line interface labels Sep 2, 2025
@Gankra Gankra changed the title Add a RISCV64 Linux --python-platform target triple for uv pip install Add --python-platform riscv64-unknown-linux to various commands Sep 2, 2025
@Gankra Gankra merged commit f76e0fe into astral-sh:main Sep 2, 2025
264 of 266 checks passed
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Sep 5, 2025
This MR contains the following updates:

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

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.15`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0815)

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

##### Python

- Upgrade SQLite 3.50.4 in CPython builds for [CVE-2025-6965](GHSA-2m69-gcr7-jv3q) (see also [python/cpython#137134](python/cpython#137134))

##### Enhancements

- Add `uv auth` commands for credential management ([#&#8203;15570](astral-sh/uv#15570))
- Add pyx support to `uv auth` commands ([#&#8203;15636](astral-sh/uv#15636))
- Add `uv tree --show-sizes` to show package sizes ([#&#8203;15531](astral-sh/uv#15531))
- Add `--python-platform riscv64-unknown-linux` ([#&#8203;15630](astral-sh/uv#15630))
- Add `--python-platform` to `uv run` and `uv tool` ([#&#8203;15515](astral-sh/uv#15515))
- Add `uv publish --dry-run` ([#&#8203;15638](astral-sh/uv#15638))
- Add zstandard support for wheels ([#&#8203;15645](astral-sh/uv#15645))
- Allow registries to pre-provide core metadata ([#&#8203;15644](astral-sh/uv#15644))
- Retry streaming Python and binary download errors ([#&#8203;15567](astral-sh/uv#15567))

##### Bug fixes

- Fix settings rendering for `extra-build-dependencies` ([#&#8203;15622](astral-sh/uv#15622))
- Skip non-existent directories in bytecode compilation ([#&#8203;15608](astral-sh/uv#15608))

##### Error messages

- Add error trace to invalid package format ([#&#8203;15626](astral-sh/uv#15626))

</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:eyJjcmVhdGVkSW5WZXIiOiI0MS45My4zIiwidXBkYXRlZEluVmVyIjoiNDEuOTMuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cli Related to the command line interface enhancement New feature or improvement to existing functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants