Skip to content

add support for --fix-broken-easyconfigs + style fixes#1151

Merged
boegel merged 17 commits intoeasybuilders:developfrom
boegel:fix_broken_easyconfigs
Feb 26, 2015
Merged

add support for --fix-broken-easyconfigs + style fixes#1151
boegel merged 17 commits intoeasybuilders:developfrom
boegel:fix_broken_easyconfigs

Conversation

@boegel
Copy link
Copy Markdown
Member

@boegel boegel commented Jan 28, 2015

The intention of --fix-broken-easyconfigs is to automagically rewrite easyconfigs that were not adjusted yet to adher to the deprecated behaviour that is no longer supported in EasyBuild v2.0 (http://easybuild.readthedocs.org/en/latest/Deprecated-functionality.html#easyconfig-parameters), i.e.:

  • replacing (pre)makeopts with (pre)buildopts
  • replacing shared_lib_ext with SHLIB_EXT
  • replacing license with license_file
  • disabling the automagic fallback to the ConfigureMake easyblock, for software for which no dedicated easyblock is available

This avoids the need to manually apply (simple) fixes to make eb accept the easyconfigs again.

@hpcugentbot
Copy link
Copy Markdown

Test FAILed.

@hpcugentbot
Copy link
Copy Markdown

Test PASSed.

@boegel
Copy link
Copy Markdown
Member Author

boegel commented Jan 30, 2015

@stdweird: please review? I'd love to get this into EasyBuild v2.0.

@stdweird
Copy link
Copy Markdown
Contributor

stdweird commented Feb 2, 2015

what does this try to solve? i can understand the inconvenience, but why is this fixed within EB? maybe when deprecating things, provide a cleanup wrapper script so people can convert broken ones to working ones. but keep that out of framework. this way, you are still keeping legacy things in framework.
if you really insist of doing it like this, then each new deprecated option must get the code to fix it etc etc etc.

i'm not happy with the passing rawtxt around hack.
i also don't understand how this code can format independent.

@boegel
Copy link
Copy Markdown
Member Author

boegel commented Feb 3, 2015

I'm more in favour of supporting this in the framework, because I want to avoid fragmentation and end up with a dozen different tools that provide all kinds of different functionality left and right... By supporting it via eb directly, people can figure it out via eb --help, and we can even mention this option in the error message when we notice old easyconfig parameters are still being relied upon (it's not doing that yet).

If you (and others) feel strongly about this, I'm willing to flesh this out in stand-alone script instead, to minimalise support for deprecated/broken stuff in the framework. We will still need some notion of the replaced parameters in the framework though, to do decent error reporting, but it would be limited to only a couple of lines of code.

I just feel there should be something available to make the transition easier, since lots of people will be sitting on a pile of easyconfig files that no longer work in EasyBuild 2.0 due to (mostly) stylistic non-backward-compatible changes... Not providing something will result in people having to script their own thing to avoid repetitive simple substitutions in the easyconfig files they have. I think we both feel that wouldn't be a good situation.

I don't see passing rawtxt passing around as a hack, it's an optimisation. I noticed that the framework was reading the easyconfig file several times, this is now significantly less so. It's kind of stupid to reread the easyconfig file from disk over and over, since it's not being changed (and shouldn't be changed from the outside while eb is running either).

This code is not meant to be format-independent; easyconfig format v2 is still experimental, so I'm not trying to autofix those; we haven't landed yet on the final format there, so we can get away with simply not supporting makeopts etc. there in the final format. That does mean that the code supporting this magic should be in the package specific to easyconfig format v1, I guess. Point taken.

@boegel boegel mentioned this pull request Feb 5, 2015
27 tasks
@boegel
Copy link
Copy Markdown
Member Author

boegel commented Feb 25, 2015

ready to be re-reviewed... @wpoely86: up for it?

@hpcugentbot
Copy link
Copy Markdown

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-framework-pr-builder/1423/
Test FAILed.

@hpcugentbot
Copy link
Copy Markdown

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-framework-pr-builder/1426/
Test PASSed.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

debug is enough here i guess (and also 3 lines below)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move this in function instead of main

@stdweird
Copy link
Copy Markdown
Contributor

@boegel looks ok, except for the EasyConfigParser issue

@hpcugentbot
Copy link
Copy Markdown

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-framework-pr-builder/1431/
Test PASSed.

@boegel
Copy link
Copy Markdown
Member Author

boegel commented Feb 26, 2015

remarks fixed, unit tests are happy, going in!

@boegel
Copy link
Copy Markdown
Member Author

boegel commented Feb 26, 2015

thanks @stdweird for the review!

boegel added a commit that referenced this pull request Feb 26, 2015
add support for --fix-broken-easyconfigs + style fixes
@boegel boegel merged commit 5f46be6 into easybuilders:develop Feb 26, 2015
@boegel boegel deleted the fix_broken_easyconfigs branch February 26, 2015 14:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants