make robot always consider subtoolchains, even without --minimal-toolchains (but in reverse order)#1973
Conversation
…chains (but in reverse order)
…en finalising dependencies
…dependency, fall back to inheriting parent toolchain
…nheriting parent toolchain more often
|
@ocaisa OK, I think this is ready... Can you take a close look at these changes? |
ocaisa
left a comment
There was a problem hiding this comment.
lgtm The only gotcha might be the impact when you couple this with use-existing-modules...but I think that's configured to require minimal-toolchains
This is a good default in my opinion, if we ensure that new easyconfigs are always added to the appropriate level in the hierarchy things will be cleaned up a lot.
|
@ocaisa well, with I've been thinking about enabling So, would it make sense to enable |
|
But then it would have no net effect, even for a hierarchical scheme, if you include easyconfigs in the repo with the full toolchain then it will always chose those. |
|
Maybe it is time to update the default MNS? Who in their right mind would chose a flat scheme anyway? ;) |
|
@ocaisa the effect this change has is that easyconfigs that were contributed by a site that is using I guess this is where support for fat easyconfigs where you can list compatible toolchains comes back into view. Or even support for telling the robot to build with a full toolchain even when only an easyconfig for a subtoolchain is available (since if building with I'm not sure if switching to |
|
Sure, but watering things down means we are still wide open to the proliferation of easyconfigs rather than making sure we collaborate on a minimal number. I agree that fat easyconfigs are the site-agnostic solution (and a step in the right direction in general), just have to find the time to implement. Can we make the default in EB 3.0 to prefer |
|
If we go the path discussed in https://github.com/hpcugent/easybuild/wiki/Conference-call-notes-20160817 then preferring yeb would just mean making sure that when a |
|
@ocaisa Currently the robot doesn't consider Which Also, this discussion is starting to diverge from what this PR is trying to do, I think. It's clear that more works is required to make both sites that prefer using subtoolchains where appropriate and sites that usually stick to 'full' toolchains happy, and I see the changes made in this PR as a (small) step in that direction. |
|
The format for fat yeb is as yet undecided isn't it, it can be decided in such a way as to be unique (e.g., only fat wrt toolchains would be unique for software/version/versionsuffix). You could pull the rest of the cleverness into the framework if you wanted to go fat in other directions...but ok that's a chat for another thread. This PR has value and should still be merged but it skirts around the reason I created minimal toolchain in the first place: to minimise the amount of easyconfigs I have to work with to create an entire software stack for our system. If eb doesn't encourage people to transition to submitting easyconfigs with the appropriate toolchain then this number won't go down and we'll still have people solving the same problems over and over with different toolchains (not necessarily in the release repo, but certainly if they're managing their own deck) |
|
@ocaisa I think the problem is that "the appropriate toolchain" means different things for different sites. So, I think working towards fat easyconfigs is the right approach to deal with this, I think we're on the same page there. This PR doesn't really help there, but it's a way to make sure that people can pick up easyconfigs that were contributed by a site that is using I hope this change can motivate sites using I suggest we merge this as is, and discuss whether or not we want to enable |
|
Happy to merge, backwards compatible and improves behaviour so lgtm |
|
OK, thanks for the feedback @ocaisa! |
This change is necessary to consider making
--minimal-toolchainsthe default, since without it easyconfig files that are contributed back may require to have--minimal-toolchainsenabled, which is not what we want.It basically makes the robot also consider subtoolchains for dependencies without
--minimal-toolchains, rather than only the 'parent' toolchain, but in reverse order, i.e. first the direct subtoolchain toolchain of the parent toolchain, and then further down (but not includingdummyunless--add-dummy-to-minimal-toolchainsis specified).So, with this in place the robot will consider (sub)toolchains in reverse order compared to with having
--minimal-toolchainsenabled.cc @ocaisa