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

(experimental) support for --exclude-labels and --include-labels for Easystack #3512

Open
deniskristak opened this issue Dec 1, 2020 · 0 comments
Labels
easystack Issues and PRs related to easystack files enhancement
Milestone

Comments

@deniskristak
Copy link
Contributor

deniskristak commented Dec 1, 2020

related to: easystack file pull request

Labels
Labels are a means to not build everything in the spec file, but only to select certain items that match with the labels specified on the command line.

For example, the spec file could contain

    GROMACS:
      toolchains:
        foss-2020a:
          versions:
            2020.1:
              exclude-labels: foo
            2020.2:
            2020.3:
              include-labels: bar

and the command line invocation could be

eb eessi-2020.09.yml --labels='foo'

Then, EasyBuild will nót build GROMACS-2020.1-foss-2020a.eb, because the command line contained the foo key, and the spec file specified that as a label to exclude (exclude-labels: foo). Furthermore, EasyBuild will also nót build GROMACS-2020.3-foss-2020a.eb, because the spec file specified that it should only be build if the bar label was passed (include-labels: bar) and bar wasn't a label on the command line.

Labels are not interpreted in any way by EasyBuild: it just matches the labels passed on the command line to the include-labels and exclude-labels keywords. The meaning of those labels is entirely up to the developer of the spec file and we suggest the labels are explained through comments at the top of the YAML file.

Practical usage would be:

The 'gpu' label can be used to indicate if you want GPU software to be build. If software has both CPU and GPU versions, passing the 'gpu' label will disable building the CPU version.

    GROMACS:
      toolchains:
        foss-2020a:
          exclude-labels: gpu
          versions: 2020.1
        fosscuda-2020a:
          include-labels: gpu
          versions: 2020.1

Then, a user who wants to build for a GPU based system can do:

eb eessi-2020.09.yml --labels='gpu'
@boegel boegel added this to the next release (4.3.3?) milestone Dec 23, 2020
@boegel boegel modified the milestones: 4.3.3, release after 4.3.3 Feb 3, 2021
@boegel boegel added the easystack Issues and PRs related to easystack files label Mar 29, 2021
@boegel boegel modified the milestones: next release (4.3.4), 4.x Apr 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
easystack Issues and PRs related to easystack files enhancement
Projects
None yet
Development

No branches or pull requests

2 participants