-
-
Notifications
You must be signed in to change notification settings - Fork 16
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
split outputs, build with rattler-build, flang 19 #98
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
use rattler because this is a lot of outputs and it takes forever with conda-build adds mongoose as an additional component
…nda-forge-pinning 2024.11.25.08.53.39
lint error is conda-forge/conda-smithy#2165 already fixed by conda-forge/conda-smithy#2166 |
This actually runs all the builds independently in sequence. A faster approach would be to keep the single 'build and install everything' and use |
At this point you could also think of splitting it into |
@xhochy that's a good point. I did think of that and figured the cost of the dev files wasn't big enough to justify the recipe complexity. It's a little hard with this multi-package layout where multiple builds have to run unless I go with a single build and pure One way to do the splitting that I think would be maintainable is to switch to a single build and do files splitting where:
so that a package depending on e.g. umfpack would have host: - libumfpack # lib, run_exports
- suitesparse-devel # headers, etc., no run_exports Do you think that's worth it? Some numbers for the fully installed suitesparse to help inform the choice, which should be unchanged (plus the addition of suitesparse-mongoose):
so the devel package would reduce the number of files for a full suitesparse install by 2/3 and the size by only 20%. The single-build would also have to wait for conda-forge/conda-smithy#2057 to resolve because rattler-build currently has the build cache behind an |
but it is not this day
That is something where I don't have an opinion on as I am not a user of this package, but I stumbled on this case of |
Since most packages don't split I also don't think splitting further |
required gmp is now available, so give it a go
gives slightly clearer if/else for single dependency category (cmake generator)
…nda-forge-pinning 2024.11.26.07.33.56
@conda-forge-admin please lint |
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
This feels like a big migration to do by myself, so I'd like some approvals before merging. But at this point, I'm not sure who from core and/or @conda-forge/suitesparse should weigh in, but any 👍s would be appreciated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, just some questions for my own understanding.
…nda-forge-pinning 2024.12.07.09.33.05
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for clarifying things!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just some minor questions
instead of SOVERSION
TL;DR: We are trying to switch our Fortran compilers on windows to flang. This is not 100% guaranteed to work, but should be fine in the majority of cases. The new LLVM-based flang has become mature enough that it should be possible to broadly switch over our Fortran compilers on windows to it (until now we only had an ancient pre-LLVM flang 5, or alternatively the GCC-based `m2w64_fortran`). As such, this PR attempts to homogenize any use of `m2w64_fortran` and other `m2w64_*` compilers to our default stack (which would then be MSVC + flang on windows), with the exception of feedstocks for R-packages, which stay on the `m2w64_` compilers. Recipes that have hard-coded expectations about the name of the fortran compiler will need to adjust to use `%FC%` or `flang-new` for the compiler name. Similarly, you may need to change the linker to `%LD%` or use `lld-link`. It is also possible that you run into compilation errors due to differences in compiler behaviour, bugs or as-yet unimplemented features. In case of compilation errors due to stricter default language standards, you should be able to fix things by passing `-std=legacy` to `FFLAGS`. If you have problems with this PR, feel free to ping the @c-f/flang-activation team. In case you have convinced yourself that flang really is not ready yet to be used to compile a given feedstock, you may also close this migrator PR. # Conflicts: # recipe/meta.yaml
…nda-forge-pinning 2024.12.09.09.58.59
use rattler because this is a lot of outputs and it saves a lot of time for the many env setup/teardown transactions over conda-build
adds suitesparse-mongoose as an additional component and unskips
spex
on windows, now that the requiredgmp
is available there.Further splitting not done, that could be, and I think could be done later without major consequence:
suitesparse-devel
to contain headers/cmake/pkg-config files (I think this needs the approach in Rattler single build, separate suitesparse-devel #99, which conda-smithy can't handle yet)mongoose is both a lib and executable so could be split further, but since it's one package and doesn't support component install, I did not make
libsuitesparse-mongoose
, onlysuitesparse-mongoose
with bin and lib.needs prepare to split suitesparse outputs admin-requests#1193 before the new outputs can be published
closes #100
closes #99