-
Notifications
You must be signed in to change notification settings - Fork 331
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
WIP: arm builds (for mac to start) #237
Conversation
@jjallaire if there are specific areas that might be high risk or specific things to test to kick this a bit more please point me any places relevant. My next thought was to grab a couple of the example repos you've converted and run them through to see if everything renders properly |
Hi @dpastoor thanks for starting to work on this! The main thing here is just getting ARM builds of the binary dependencies (pandoc, esbuild, and dart-sass). We actually do not need an ARM build of deno_dom as it can fall back to a WASM version (which we can trigger by not defining quarto-cli/package/scripts/common/quarto Line 84 in a2885bd
It looks like this should already exist for esbuild (evanw/esbuild#820) and dart-saas (google/dart_cli_pkg#89). For Pandoc we'd need to use the MacPorts build which I'm not 100% sure would work w/o including other dependencies from MacPorts? Perhaps better to wait for Pandoc proper to create a universal binary. |
Is there a reason we need macports? I think pandoc proper now has universal binaries (see linked issue in top PR comment). at least I'll see if i can confirm. For the other builds thanks for the links - I will also check if the build process is properly finding those or if need to put some additional conditional logic. It seems vague to see like I did manually invoke the pulled esbuild binary in dist/bin and cursorily that seemed to work fine so clearly something is coming in that doesn't explode immediately. |
Sorry I didn't mean MacPorts I meant Note that if you have Rosetta installed then all of the x86 binaries are still going to work (so you may need to put your system in some sort of "don't use rosetta" state to truly test). I think the ideal state is that we bundle both set of binaries into quarto and then have it automatically choose the right binaries at runtime (that way users don't need to distinguish processor architecture -- I'm sure some % will get this right but many, many others won't). You may need to sync with @dragonstyle on how to do this correctly. If you could send us a contributor agreement (https://quarto.org/about.html#contribute) that would be much appreciated. Thanks again for working on this! |
cool deal - CLA sent. Regarding pandoc - some googling led me to the fact you can find out the appropriate arch via asking so looking from the global pandoc:
however currently in the bin dir, looks like its still pulling in the x86 version:
same thing for esbuild:
so next step is update the logic for pulling these to get the arm versions as well (created a TODO section in the top level comment) |
in digging around there are some non-trivial adjustments to make in the arm builds, as such I opened a new ticket (worth activating discussions in this repo?) that lays out potential options. In the meantime, regardless of the new interface, will need to investigate how resolveable arm build are to consider how robust the existing script will be in arm environments. It seems the two definite ones could be linux + mac - I'm not sure if windows arm is that popular/used, but seems like at least linux/mac would help with the objectives around bundling with rstudio and ancillary projects like rocker that have the dual builds for linux at this point rstudio/rstudio#8809 |
can be used as a building block for more specific abstractions or used directly. The response validator will help with enforcement of such as by validating headers/etc
this is now a superset of #242 as it leverages the downloadFile implementation + test setup, so the diff is currently larger in the PR since it incorporates all the changes from that branch. Once that gets merged in, the changeset will simplify a bit. |
(I'm going to close this one in favor of the |
This PR attempts to track getting quarto going for arm platforms, per needs outlined in
#190 which may ultimately help resolve rstudio/rstudio#10159
I've just started poking around the repo so this could be quite naive 🙃
summary of changes:
TODO:
dev-related:
release-related:
outputs:
The build output is as such with the initial changes:
checking resulting build
some additional questions:
do different architectural DL's need to be adjusted for deps?
TODO:
more in-depth evaluation of cli functionality:
capabilities
serve
TODO
render