-
Notifications
You must be signed in to change notification settings - Fork 217
respect start dir defined in extensions #4195
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
Conversation
|
We have a bunch of easyconfigs that specify In any case, we should check whether these still work correctly on top of the changes proposed in this PR: Python code used to compose this list: import glob
import os
from easybuild.framework.easyconfig.tools import parse_easyconfigs
from easybuild.tools.options import set_up_configuration
os.environ['EASYBUILD_IGNORE_OSDEPS'] = '1'
set_up_configuration()
ec_files = glob.glob('easybuild/easyconfigs/*/*/*.eb')
print("Found %d easyconfigs!" % len(ec_files))
ecs, _ = parse_easyconfigs([(x, False) for x in ec_files])
print("Parsed %d easyconfigs!" % len(ecs))
for ec in ecs:
ec = ec['ec']
ec_fn = os.path.basename(ec.path)
exts_list = ec['exts_list']
if exts_list:
for ext in exts_list:
if len(ext) >= 3:
ext_options = ext[2]
if 'start_dir' in ext_options:
print("%s => ext %s specifies 'start_dir': %s" % (ec_fn, ext[0], ext_options['start_dir'])) |
|
@boegel thanks for listing those packages, they work with In that case, my problem is not that Closing this PR as it is not a good solution, I'll make a new one if needed. |
|
Follow-up in #4196 |
Currently extensions ignore
start_dirbecauseExtensionEasyBlock._set_start_dirforcefully overwritesself.cfg['start_dir']of the extension.This PR enables extensions to define a
start_dir. The resulting start dir will be on of the following by preference from top to bottom:self.cfg['start_dir']is an absolute path and exists it will be used as isself.start_dirwithself.cfg['start_dir']self.ext_dirwithself.cfg['start_dir']Motivation: Some Julia packages are distributed in a subfolder of other Julia packages. For instance, SnoopPrecompile and SnoopCompileCore are found inside SnoopCompile