Skip to content

Conversation

@boegel
Copy link
Member

@boegel boegel commented May 13, 2019

(fixes #1181)

The main motivation of this change is i) to get rid of the silly/meaningless 'dummy' name, ii) to get rid of the confusing behavior of the dummy toolchain of not loading dependencies in the build environment when 'dummy' is used as a toolchain version (cfr. https://easybuild.readthedocs.io/en/latest/Writing_easyconfig_files.html#loading-of-modules-for-dependencies-with-a-dummy-toolchain).

A big part of this PR is replacing the use of 'dummy' with 'system' throughout the code base and tests, so let me highlight the main changes:

  • A new system toolchain was introduced (see also System toolchain definition + SystemCompiler compiler used by it).

  • In contrast with the dummy toolchain, the version of the system toolchain is totally meaningless (so no more special behavior like we had with using 'dummy' as a version for the dummy toolchain).

  • The use of the dummy toolchain is deprecated: it will produce a big fat warning in EasyBuild 4.x, and will result in an error being raised starting with EasyBuild 5.0 (see Toolchain.__init__ in easybuild/tools/toolchain/toolchain.py).
    In addition, whenever the dummy toolchain is specified, it will be replaced by the system toolchain under the covers

  • The --add-dummy-to-minimal-toolchains configuration option has been renamed to --add-system-to-minimal-toolchains (so --add-dummy-to-minimal-toolchains is no longer a valid configuration option).

  • A new function is_system_toolchain (+ utility method Toolchain.is_system_toolchain()) has been added, which should be used wherever we need to check whether or not a system toolchain is used (rather than checking the toolchain name against DUMMY_TOOLCHAIN_NAME).

  • A new constant SYSTEM was added which allows for using toolchain = SYSTEM in easyconfig files, to make the use of a system toolchain stand out a bit more, and to make it cleaner (compared to using toolchain = {'name': 'system', 'version': 'system'}.

  • A new (internal) constant SYSTEM_TOOLCHAIN_NAME was introduced, equivalent with DUMMY_TOOLCHAIN_NAME (but easyblocks should be updated to use is_system_toolchain instead).

  • dummy is filtered from the output of --list-toolchains (since it's deprecated)

boegel added 30 commits April 25, 2019 22:07
…erywhere (incl. renaming --add-dummy-to-minimal-toolchains to --add-system-to-minimal-toolchains)
…eck whether easyconfig file is generated, to avoid running into GCC 4.9.3-* easyconfigs that have a versionsuffix as well
…p vs indirect non-hidden dep of toy/.0.0-deps by specifying dummy test module instead
@boegel boegel added this to the 4.0 milestone May 13, 2019
@boegel boegel requested a review from wpoely86 May 13, 2019 07:14
Copy link
Contributor

@akesandgren akesandgren left a comment

Choose a reason for hiding this comment

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

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants