Skip to content

Fix: use _BUILD_TIME_PYTHON when cross-compiling - #187

Merged
traversaro merged 1 commit into
RoboStack:masterfrom
EzraBrooks:vinca-py/3-cross-build-python
Nov 5, 2026
Merged

traversaro merged 1 commit into
RoboStack:masterfrom
EzraBrooks:vinca-py/3-cross-build-python

Conversation

@EzraBrooks

@EzraBrooks EzraBrooks commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

No description provided.

@traversaro

Copy link
Copy Markdown
Member

Can you quickly explain the rationale for this?

@EzraBrooks

Copy link
Copy Markdown
Contributor Author

yep. at the moment all cross-compiles include a python dependency even if they were not identified by Vinca as being dependent on Python. This makes them (pending RoboStack/robostack#193) get included in the per-Python-version rebuild despite not needing to be.

Though, open question you may be able to answer that I don't know: is this cross-compile actually used in CI right now? probably worth fixing regardless

@Tobias-Fischer

Copy link
Copy Markdown
Contributor

We don't cross-compile anymore, and it's quite likely that cross-compilation is broken by now. Maybe we should remove deprecated cross-compilation code instead?

@EzraBrooks EzraBrooks changed the title Fix: pin Python version when cross-compiling Fix: use _BUILD_TIME_PYTHON when cross-compiling Nov 4, 2026
@EzraBrooks

Copy link
Copy Markdown
Contributor Author

I can put together an alternate PR that removes cross-compile piping entirely to patch this bug by removing it 😀

@EzraBrooks

Copy link
Copy Markdown
Contributor Author

Though I will say that I'm deeply commercially interested in RISC-V and right now it's a lot easier to cross compile to RISCV64 than natively build in the cloud

@Tobias-Fischer

Copy link
Copy Markdown
Contributor

Good point about RISC-V. I think @wolfv and the prefix folks are interested in this, too - in this case, it makes sense to keep cross-compiling code (which can be fixed if it doesn't work properly anymore). In this case, I'm supportive of the PR, but will wait for @traversaro to take another look.

@EzraBrooks

Copy link
Copy Markdown
Contributor Author

Without #186 this got a bit more complicated. I don’t like this multi-step re-pinning process that the agent added.. going to noodle a bit more

…n included

With conditional_python_dependency, recipes without Python content get a
build python pinned to python_min, so they aren't built per Python. The
cross-compilation block's bare python escaped that pin and put them back
into the Python variant matrix when cross-compiling. Packages built per
Python, on the other hand, got the pin too: cross-compiling, their build
environment also gets the variant's python (for cross-python), so a cp313
build asked for python 3.12.* and 3.13 at once.

Pin both build pythons in one place, after dependencies.yaml (which can add
python to a package without Python dependencies, e.g. one that embeds the
interpreter), and only when host ends up without python.
@EzraBrooks
EzraBrooks force-pushed the vinca-py/3-cross-build-python branch from ae7e910 to d2ffd7a Compare November 4, 2026 22:50
@EzraBrooks

Copy link
Copy Markdown
Contributor Author

Okay, this now does the pinning rewrite after the dependencies.yaml is merged in, fixing the plotjuggler case.

@EzraBrooks

Copy link
Copy Markdown
Contributor Author

I realized overnight that this isn't actually blocking my RoboStack PR and it was just blocking my testing of it on my big beefy build workstation, where I was doing cross builds in testing. Still worth merging though imo

@Tobias-Fischer

Copy link
Copy Markdown
Contributor

Could you please also take a look @traversaro

@traversaro
traversaro merged commit 2bd1501 into RoboStack:master Nov 5, 2026
3 checks passed
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