Skip to content

tools

Easyconfig module that provides functionality for dealing with easyconfig (.eb) files, alongside the EasyConfig class to represent parsed easyconfig files.

Authors:

  • Stijn De Weirdt (Ghent University)
  • Dries Verdegem (Ghent University)
  • Kenneth Hoste (Ghent University)
  • Pieter De Baets (Ghent University)
  • Jens Timmerman (Ghent University)
  • Toon Willems (Ghent University)
  • Fotis Georgatos (Uni.Lu, NTUA)
  • Ward Poelmans (Ghent University)

alt_easyconfig_paths(tmpdir, tweaked_ecs=False, from_prs=None, from_commit=None, review_pr=None)

Obtain alternative paths for easyconfig files.

avail_easyblocks()

Return a list of all available easyblocks.

categorize_files_by_type(paths)

Splits list of filepaths into a 4 separate lists: easyconfigs, files to delete, patch files and files with extension .py

check_sha256_checksums(ecs, whitelist=None)

Check whether all provided (parsed) easyconfigs have SHA256 checksums for sources & patches.

PARAMETER DESCRIPTION
whitelist

list of regex patterns on easyconfig filenames; check is skipped for matching easyconfigs

DEFAULT: None

RETURNS DESCRIPTION

list of strings describing checksum issues (missing checksums, wrong checksum type, etc.)

dep_graph(filename, specs)

Create a dependency graph for the given easyconfigs.

det_copy_ec_specs(orig_paths, from_pr=None, from_commit=None)

Determine list of paths + target directory for --copy-ec.

det_easyconfig_paths(orig_paths)

Determine paths to easyconfig files.

PARAMETER DESCRIPTION
orig_paths

list of original easyconfig paths

RETURNS DESCRIPTION

list of paths to easyconfig files

dump_env_script(easyconfigs)

Dump source scripts that set up build environment for specified easyconfigs.

PARAMETER DESCRIPTION
easyconfigs

list of easyconfigs to generate scripts for

Find related easyconfigs for provided parsed easyconfig in specified path.

A list of easyconfigs for the same software (name) is returned, matching the 1st criterion that yields a non-empty list.

The following criteria are considered (in this order) next to common software version criterion, i.e. exact version match, a major/minor version match, a major version match, or no version match (in that order).

(i) matching versionsuffix and toolchain name/version (ii) matching versionsuffix and toolchain name (any toolchain version) (iii) matching versionsuffix (any toolchain name/version) (iv) matching toolchain name/version (any versionsuffix) (v) matching toolchain name (any versionsuffix, toolchain version) (vi) no extra requirements (any versionsuffix, toolchain name/version)

If no related easyconfigs with a matching software name are found, an empty list is returned.

find_resolved_modules(easyconfigs, avail_modules, modtool, retain_all_deps=False)

Find easyconfigs in 1st argument which can be fully resolved using modules specified in 2nd argument

PARAMETER DESCRIPTION
easyconfigs

list of parsed easyconfigs

avail_modules

list of available modules

retain_all_deps

retain all dependencies, regardless of whether modules are available for them or not

DEFAULT: False

get_paths_for(subdir=EASYCONFIGS_PKG_SUBDIR, robot_path=None)

Return a list of absolute paths where the specified subdir can be found, determined by the PYTHONPATH

parse_easyconfigs(paths, validate=True)

Parse easyconfig files

PARAMETER DESCRIPTION
paths

paths to easyconfigs

review_pr(paths=None, pr=None, colored=True, branch='develop', testing=False, max_ecs=None, filter_ecs=None)

Print multi-diff overview between specified easyconfigs or PR and specified branch.

PARAMETER DESCRIPTION
pr

pull request number in easybuild-easyconfigs repo to review

DEFAULT: None

paths

path tuples (path, generated) of easyconfigs to review

DEFAULT: None

colored

boolean indicating whether a colored multi-diff should be generated

DEFAULT: True

branch

easybuild-easyconfigs branch to compare with

DEFAULT: 'develop'

testing

whether to ignore PR labels (used in test_review_pr)

DEFAULT: False

run_contrib_checks(ecs)

Run contribution check on specified easyconfigs.

skip_available(easyconfigs, modtool)

Skip building easyconfigs for existing modules.

stats_to_str(stats, isyeb=False)

Pretty print build statistics to string.