-
Notifications
You must be signed in to change notification settings - Fork 284
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
reprod easyconfig does not work for VMD, Tau, MrBayes (and possibly others) #1574
Comments
Mmm, I think this is actually a problem in the EasyConfig.update method. It appends to the values without checking if what it's appending is already present. |
There are other recipes for which the For
For Tau, the duplicated arguments to the configure script also cause a problem :
|
cc @ocaisa |
@boegel I saw it :) but I think it is a very hard one to fix. It would seem like the dump method is going to need a ton more logic. We need a good handle on what can actually modify an easyconfig and make the dump method account for that. For example, anything done by an easyblock shouldn't appear in the dump (since with easybuilders/easybuild-framework#2653 they will also get archived) but we still want all modifications done by hooks, the command line and dependency resolution (any more?). |
So far, there is only a handful of recipes for which this is problematic (and I recompiled about 400 different combinations of (software package,version,toolchain)), so we could just fix those easyblocks. However, issue easybuilders/easybuild-framework#2658 is much more generalized and basically has the same root cause. What if there was a copy of the EasyConfig that was kept internally, and which would have only
|
@mboisson I don't think that is really possible, the hooks have the keys to the kingdom and can be called before or after any of the steps of the easyblock. I was thinking the only way to do it would be to also record the hooks in the This still doesn't solve easybuilders/easybuild-framework#2658 but there you have something very specific. In that case ( |
@ocaisa, so how come the hooks are not recorded in the |
Basically because the hooks are a fairly recent phenomenon and the implications haven't been thought about too much. The |
Another example which I stumbled upon is FFTW. The FFTW easyblock converts a configopts which is a string into a list. But the reprod recipe contains a list. We therefore run into the issue that the easyblock is trying to concatenate a list with a string. |
NWChem also has a problem, but it's trickier... the start_dir is set to a temporary directory, which is then saved in the reprod. The tmpdir obviously does not exist when you try to reproduce the build... |
Bundle modules also don't seem to like to have |
All these problems reinforce my idea for doing reproducability slightly differently and avoid trying to solve these issues one by one. I don't see how you can sanitize out all possible problems since the easyblocks can do anything to the instance. It's good to have a list of currently failing cases so we can work on creating relevant tests |
I am rebuilding a lot of software packages using the
.eb
that is contained in thereprod
folder. VMD fails to rebuild with the error :note that the list of arguments appears twice. The culprit is that somehow, the
.eb
file in thereprod
folder contains the list in itsconfigopts
and it gets duplicated instead. The.eb
file stored in theebfiles_repo
does not contain this variable :The text was updated successfully, but these errors were encountered: