-
Notifications
You must be signed in to change notification settings - Fork 99
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
Metapackages #859
Metapackages #859
Conversation
I've added a metapackage for
TBD: E.g., my package has no openmp but one of its dependencies has it. Should we just propagate |
Appreciate your help @arteevraina, thank you. I believe all your comments are addressed now. |
The Windows build sometimes segfaults in the CI (not on my local machine), so, I'm investigating. I suspect it has to do with the fact that the CI uses the msys shell. |
Thank you @arteevraina. If there are no more comments from @minhqdao @henilp105 and the other reviewers, I will merge within a few days. |
Ok, looks like it's good enough to merge. |
I guess this is the reason I get |
Thanks @Carltoffel, good point that I agree it needs to be addressed too. Can I ask you to open a new issue on it for discussion? |
Of course, you can, but I don't quite get what the topic exactly should be. Do you want to discuss a better error message? Or do you want to have a better discussion on how to handle nested dependencies of metapackages? |
Correct - thank you! I mean about handling nested dependencies with metapackages. Maybe having an issue for it will draw more attention/discussion. |
When I use the MPI metapackage with
In the example_packages directory, |
@Carltoffel, thank you for testing MPI. |
This PR aims to address #853 #161 #855. The first 4 metapackages (OpenMP, stdlib, MPI, minpack) are implemented.
Documentation at fortran-lang/fpm-docs#108.
Usage
Metapackages are supported via a keyword in the manifest's
dependencies
section like it was suggested in #161:Currently, we only support the wildcard ("*"), meaning "any" versions. In the future, this can be extended with constraints.
example programs are given in
example_packages/metapackage_*
folders, and they're all run by the new CI.Implementation status
Summary
metapackage_t
is a project handler that adds flags, dependencies and features to a package to fit the metapackage requirement(s) without messing up the codebase.meta.yml
only runs when metapackages are added/modifiedfpm_meta.f90
for now, will be moved out to individual files next.