Skip to content
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

Add ability to archive easyblocks #2633

Closed
verdurin opened this issue Oct 22, 2018 · 5 comments
Closed

Add ability to archive easyblocks #2633

verdurin opened this issue Oct 22, 2018 · 5 comments
Milestone

Comments

@verdurin
Copy link
Member

Based on a question that came up at the workshop in Birmingham 2018-10-22.

@boegel
Copy link
Member

boegel commented Oct 24, 2018

This should go into the easybuild/reprod dir then that we already have now? Thoughts @ocaisa?

We should probably also have some dedicated documentation on how to reproduce installations done with EasyBuild?

Or maybe even drop a script into easybuild/reprod that specifies everything that's needed (--include-easyblocks=... for example)?

@boegel boegel added this to the 3.x milestone Oct 24, 2018
@ocaisa
Copy link
Member

ocaisa commented Oct 25, 2018

Definitely should go in the easybuild/reprod dir. Since the inheritance implies there will typically be a few, I'd suggest we put all the necessary easyblocks in a subdir there so that someone can just use --include-easyblocks=/.../easybuild/reprod/reprod_easyblocks/*

@ocaisa
Copy link
Member

ocaisa commented Nov 5, 2018

Hmm, I can't find any way of doing this fully. It's straightforward to get the source file for the easyblock (using inspect.getsourcefile() and get_easyblock_class()) but that is incomplete unless you follow the inheritance all the way back to the base easyblock class.

@ocaisa
Copy link
Member

ocaisa commented Nov 5, 2018

Ok, I found out how to do it:

        app_class = get_easyblock_class(easyblock, name=name)
        for easyblock_class in inspect.getmro(app_class):
            easyblock_path = inspect.getsourcefile(easyblock_class)
            if os.path.split(easyblock_path)[0].endswith(os.path.join('easybuild-framework', 'easybuild', 'framework')):
                break
            else:
                print easyblock_path

PR is in the works.

@boegel
Copy link
Member

boegel commented Nov 21, 2018

easyblocks are now also archived in the easybuild/reprod subdir of the installation directory thanks to @ocaisa's PR #2653

@boegel boegel closed this as completed Nov 21, 2018
@boegel boegel modified the milestones: 3.x, 3.8.0 Nov 21, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants