-
Notifications
You must be signed in to change notification settings - Fork 101
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
The Road to 1.0 #917
Comments
Would this be reliable, where e.g. wine supported? Maybe I'm not up-to-speed on BinaryBuilder, and while I might use wine personally, and it's probably even pretty compatible by now, it's not perfect. Would the result be compromized and some virtual machine with real Windows be better? |
Wine is certainly not perfect, but right now we can't run foreign executables at all.
The whole point of this framework is to not have to have access to the target platform and instead have a single environment to build for all the desired platforms. |
Mosè and I are discussing how best to deal with complex build scenarios involving bootstrapping and canadian crosses and whatnot. We envision a possible future where we have commands such as This would allow hot-swapping between multiple different builds at a time, which is very useful, and also for more convenient interactive exploration. |
This issue will serve as a roadmap of sorts, a kind of grouping of "accepted feature requests" generated by myself, Mosè, and other concerned parties. While BinaryBuilder.jl already does a fantastic job for many pieces of software, there are things that make it unnecessarily difficult to work with, or that limit it in some ways, and we should address these things as best we can.
BinaryBuilder.jl
1.0 should, in my mind, be ready to put virtually all other ways of compiling software out of business. It should work flawlessly for the Julia ecosystem, but also be usable for other groups as well. It should be feature-complete and well-tested, and have as few hidden performance or and usability warts as possible. We're a good ways toward fulfilling this vision, but I see the following areas as needing improvement before we can truly wash our hands and say that this area is solved:Build Platform
qemu-user-static
,wine
anddarling
.binfmt_misc
kernel module and thedarling
kernel module, and prompt them to load it if not.Build API
build_tarballs()
API. I refer to this as theBuildMetadata
rework, and it is best summarized in this comment,JLLs
CompilePreferences
and Pkg hooks, it's possible this can be done by having debug versions of a package listed asdebug=true
tags in their platform objects, then doing a runtime lookup of a compiletime preference to see ifdebug
has been set totrue
and selecting those artifacts instead.CompilePreferences
we could do away withOverrides.toml
and instead be much more flexible: we could have anoverrides
dict within the preferences itself that selectively overrides the paths of individual products.Other
Sandbox.jl
, with backing UserNS and Docker runners contained within it.This will be a living document and get updated as more good ideas come to the foreground.
The text was updated successfully, but these errors were encountered: