Hi Fokko,

On 22/05/15 10:38, Fokko Masselink wrote:
Hi everyone,

I was following the guide to setup my own easyblock repository.
https://github.com/hpcugent/easybuild/wiki/Setting-up-your-own-easyblocks-repository

That all works fine.

Though if I want to modify an existing easyblock and copy it to my own
repository (and leave the original file in place) it will still use the
original file instead of my modified version.
It probably has to do with the fact that my own repository is listed later in
the path (PYTHONPATH) then the standard repository. Though the guide states
why the standard repository should come earlier in the path.

Is there a way to tell easybuild to "overload" the original easyblock (coming
with easybuild) if one is found in my own repository?

This will also help me with quickly updating to newer EasyBuild releases,
while my own repository is outside of the EasyBuild tree then.

Thanks for putting this issue back on my radar.
I've been pretty annoyed by this myself, but haven't been able to figure out a solution.
Until now, that is.

For now (with EasyBuild v2.1.x), no, there's no way to make your own easyblock overrule one that is part of the EasyBuild installation. As explained on the wiki page you mention, that's a consequence of how we 'flatten' the easybuild.easyblocks namespace (the easyblocks are organized in subdirectories by first letter, yet can be imported 'directly', e.g. easybuild/easyblocks/g/gcc.py vs "from easybuild.easyblocks.gcc import EB_GCC").

But, after a bit of playing around, I think I figured out how to fix this problem.
See https://github.com/hpcugent/easybuild-easyblocks/pull/617 .

This proposed change needs some feedback from others who are familiar with this issue, e.g. Jens, and a dedicated unit test to ensure that we don't break this in the future, but I'm hopeful this will effectively resolve this long-standing issue.


regards,

Kenneth

Reply via email to