sndsw: let alibuild figure out dependencies#36
Conversation
ThomasRuf
left a comment
There was a problem hiding this comment.
This looks like a huge change, but would of course simplify life enormously . Was it tested for all operating systems? Also with present CVMFS release? I mean running the simulation/digitization/reconstruction? Or would it require to build a new stack? I remember large problems of having stuff in the ROOT include path, python path didn't worked on some OS. Most of the settings of env variables are added because they were not present otherwise.
|
Thank you for your comments!
Not yet, I opened this PR to allow for wider testing.
Again, not yet. The one complication is that I'm not completely certain whether the module files are all correctly found when we force using "system" packages. But this would also apply to manually specifying all the dependencies.
For testing, it should be sufficient to compare the environments before and after the change, and see which modules are loaded in both cases. As least on my machine, it made no difference (apart from also loading dependencies only specified in the yaml section of the recipe, which were ignored otherwise).
As most users use $SNDDIST from CVMFS, the stack does not need to be rebuilt. It should however work with the current stack.
The ENV variables are not touched, with the exception of SNDSW_HASH for incremental builds. This modifies only which modules are loaded as dependencies. |
|
Thank you for your comments!
Not yet, I opened this PR to allow for wider testing.
Again, not yet. The one complication is that I'm not completely certain whether the module files are all correctly found when we force using "system" packages. But this would also apply to manually specifying all the dependencies.
For testing, it should be sufficient to compare the environments before and after the change, and see which modules are loaded in both cases. As least on my machine, it made no difference (apart from also loading dependencies only specified in the yaml section of the recipe, which were ignored otherwise).
As most users use $SNDDIST from CVMFS, the stack does not need to be rebuilt. It should however work with the current stack.
The ENV variables are not touched, with the exception of SNDSW_HASH for incremental builds. This modifies only which modules are loaded as dependencies.
We should investigate these cases further, as the modules set the environment variables in a deterministic way (and cases per architecture can be added), but those should be separate issues. |
|
Just tested on lxplus, where a lot of scary output is produced, but the resulting env is the same as before. The created sndsw module is: Note, how the only difference is that now the module loading fails loudly instead of quietly (but errors are still ignored), and dependencies are resolved to the leaves instead of only one level down. |
|
Simona and I are making a new release for lxplus9. I would like to postpone this PR until this is finished. |
91dd5c1 to
466ee81
Compare
|
I've updated this as I had made a mistake in the incremental recipe. The recipe now follows the ROOT procedure for generating and updating the modulefile for incremental builds. |
If we specify the dependencies manually, we prevent aliBuild from loading the correct dependencies (e.g. when adding a new one).
We also overwrite the module file in the incremental build recipe.
This PR fixes both of those issues by using alibuild's builtin tool for generating modules automatically and by only updating the SNDSW_HASH when doing an incremental rebuild of sndsw.