-
Notifications
You must be signed in to change notification settings - Fork 6
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
Switch to conda-built gfortran - also for osx-64 - and do bundling in this repo? #7
Comments
@isuruf My guess is that we don't want to do it within So the biggest question (to me) is where we set up conda, and execute the script to bundle gfortran. |
@mattip @matthew-brett |
in the archives folder here? |
Do you mean the final artefacts? That sounds OK to me of course, though I'm mostly wondering about where to put the following code (taken from https://github.com/isuruf/gcc/releases), and most importantly where/how to execute it.
|
"how to execute it" - it seems to need an aarch64 (arm-on-M1) machine. I don't think those can be emulated yet. So someone could execute the code (which could be stored in this repo with directions for replication) on a private machine and upload the artifact. Not so good for reproducibility. |
Pretty sure there would be ways to make that work. conda-lock does it too, for example.
I think it'd be a big win if we can take the dependency on individual members of out the equation. :) |
Nope. the compiler is a cross compiler that generates code for aarch64, but runs on x86_64. |
Done in #11 |
conda is installed by default in the macos-11 images (Miniconda 4.12.0). |
OK cool, that makes things a bit easier. We still need to decide a place where to run the script though. Do we want to combine the extraction from conda-forge with the installation? If not, do we have a two-stage build here, or build |
I think it is fine to commit the build script here for reproducibility. Where the actual artifact is hosted is less of an issue, the current solution of hosting it at https://github.com/isuruf/gcc/releases is fine as long as we can verify and track it. |
I don't think it's a good solution, as it's non-automated and depends on the access of one person. The point is to build this somewhere so that people from numpy/scipy can rerun the build-script at will. We have two steps:
We could combine 1. & 2. in this repo. If we want to persist the artefact from 1., then I'm proposing we also build it in this repo, and store it wherever we store the other artefacts (anaconda nightly?). |
The artifact is also downloaded as part of numpy/numpy testing and in wheel building to pull out the libgfortran.5.dylib, so if it moves, those need updating. |
In the discussion in MacPython/scipy-wheels#140, @isuruf suggested to reuse the conda-forge gfortran builds, which are already being used for osx-arm here, and Ralf agreed that this would be fine.
Currently the arm binaries are published on @isuruf's fork but come with complete instructions for reproducing them. In order not to place this burden on him (to bundle various versions for osx-x64 or newer gcc versions), we should execute these instructions somewhere - sounds like it would make sense in this repo...
PS. I thought it would be nice to be able to jump to using the same gfortran version for osx-x64 & osx-arm64, so I opened a PR (still WIP).
PPS. Scipy is fine to bump the minimum OSX-requirement to 10.13 (since this is what cibuildwheel now sets as minimum. apparently), though AFAICT, conda-forge still builds for a minimum of 10.9.
The text was updated successfully, but these errors were encountered: