From 44860d76d35be980299bcfab6619a24db1d5d3a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenz=20H=C3=BCdepohl?= <lorenz.huedepohl@rzg.mpg.de> Date: Fri, 29 Nov 2019 10:43:51 +0100 Subject: [PATCH] Macros %latest_intel and %latest_gcc in prjconf of software:dist --- mpcdf_common.py | 15 ++++++++------- mpcdf_refresh_aggregates.py | 6 ++++++ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/mpcdf_common.py b/mpcdf_common.py index 555daf3..ce3005f 100644 --- a/mpcdf_common.py +++ b/mpcdf_common.py @@ -306,6 +306,12 @@ def get_microarchitecture(project): raise Exception("Unknown micro-architecture '{0}'".format(microarch)) +def package_sort_key(string): + name, version = string.split("_", 1) + version = version.split("_") + return (name,) + tuple(map(int, version)) + + def mpcdf_enable_repositories(api_url, project, package, verbose=False, filter_repos=None): from itertools import product import sys @@ -355,13 +361,8 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, filter_r default_mpis = try_get_attribute(None, "default_mpi") default_cudas = try_get_attribute(None, "default_cuda") - def sort_key(string): - name, version = string.split("_", 1) - version = version.split("_") - return (name,) + tuple(map(int, version)) - - latest_intel = sorted((c for c in all_compilers if c.startswith("intel")), key=sort_key)[-1] - latest_gcc = sorted((c for c in all_compilers if c.startswith("gcc")), key=sort_key)[-1] + latest_intel = sorted((c for c in all_compilers if c.startswith("intel")), key=package_sort_key)[-1] + latest_gcc = sorted((c for c in all_compilers if c.startswith("gcc")), key=package_sort_key)[-1] def enable(name): if any(filtered_repo in name for filtered_repo in filter_repos): diff --git a/mpcdf_refresh_aggregates.py b/mpcdf_refresh_aggregates.py index f95dc31..22e2594 100644 --- a/mpcdf_refresh_aggregates.py +++ b/mpcdf_refresh_aggregates.py @@ -94,6 +94,12 @@ def do_mpcdf_refresh_aggregates(self, subcmd, opts, *args): values = mpcdf_common.get_attribute_values(apiurl, project, None, attribute) macros[target].append("%available_{0} {1}".format(name, ",".join(sorted(values)))) + all_compilers = mpcdf_common.get_attribute_values(apiurl, project, None, "MPCDF:compiler_modules") + latest_intel = sorted((c for c in all_compilers if c.startswith("intel")), key=mpcdf_common.package_sort_key)[-1] + latest_gcc = sorted((c for c in all_compilers if c.startswith("gcc")), key=mpcdf_common.package_sort_key)[-1] + macros[target].append("%latest_intel " + latest_intel) + macros[target].append("%latest_gcc " + latest_gcc) + for repo in osc.core.get_repositories_of_project(apiurl, project): aggregatename = "zz_aggregate_" + project.replace(":", "-") + "_" + repo refresh_aggregate(aggregatename, project, repo, target) -- GitLab