-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Skeleton for distributing run-task/fetch-content as rust binaries. #374
base: main
Are you sure you want to change the base?
Conversation
(CI is failing because there's no Rust toolchain in the image...d'oh.) |
This is awesome! Though something just occurred to me.. how will this play with the fact we vendor Taskgraph in Gecko? I guess |
How does this work for other binary dependencies (eg: Another option would be to split out any binary components into a separate package, and put only that elsewhere. (Although at that point...maybe we should just make these two things a crate that is vendored in Gecko, and built for usage?) I don't have any brilliant ideas so far... |
Afaik, we don't vendor any binary packages for this very reason. Another option is we could stop vendoring Taskgraph and just install it from pypi, and that should be fine (the bits of the build system that depend on Taskgraph require an internet connection anyway). As I recall, the main reason we vendor it was because Aki was concerned it would be difficult to land changes across both |
@jcristau and I had a discussion about this on Matrix which centered around how this would work for decision task - which is run through This is yet another complication of having a compiled I'm starting to think that including any compiled code in taskgraph is not going to be worth the effort... |
Yeah, that could definitely be the case. It's probably a solvable problem.. but is it worth the headache |
This is a tiny skeleton, but it gets us far enough that
run-task
andfetch-content
are runnable after installingtaskgraph
.I've also managed to mostly prove that cross compilation works.
maturin build --target x86_64-pc-windows-msvc
produced a Windows compatible wheel for me.maturin build --target x86_64-apple-darwin
failed to produce a macOS wheel, but I believe this is fixable with these instructions about installing a compiler toolchain (I haven't had a chance to test it out yet - but I certainly know that cross compiling Rust from Linux to macOS is possible...so there's a high chance it can be made to work.)