From 3d3e4121cc282e2c4a37932b3e86fdf5b104f055 Mon Sep 17 00:00:00 2001 From: Owen W. Taylor Date: Oct 05 2018 19:42:31 +0000 Subject: MBSResolver: only return the latest version for get_module_modulemds() get_module_modulemds() was documented to return only the latest version, but actually returned all versions. Because this wasn't anticipated in the libsolv usage for module resolution, a more-or-less arbitrary version would be picked to build local builds against instead of the latest one. --- diff --git a/module_build_service/resolver/MBSResolver.py b/module_build_service/resolver/MBSResolver.py index 76ce2d0..583ebc4 100644 --- a/module_build_service/resolver/MBSResolver.py +++ b/module_build_service/resolver/MBSResolver.py @@ -74,7 +74,8 @@ class MBSResolver(GenericResolver): :param str name: module's name. :param str stream: module's stream. - :kwarg str version: module's version. Optional. + :kwarg str version: a string or int of the module's version. When None, + latest version will be returned. :kwarg str context: module's context. Optional. :kwarg str state: module's state. Defaults to ``ready``. :kwarg bool strict: Normally this function returns None if no module can be @@ -111,7 +112,11 @@ class MBSResolver(GenericResolver): else: return None - return modules + if version is None: + # Only return the latest version + return [m for m in modules if m["version"] == modules[0]["version"]] + else: + return modules def _get_module(self, name, stream, version, context, state="ready", strict=False): return self._get_modules(name, stream, version, context, state, strict)[0]