From e48983132cf3e5adec2eb31a869127aab3aa9430 Mon Sep 17 00:00:00 2001 From: Owen W. Taylor Date: Apr 29 2022 19:47:08 +0000 Subject: Clarify the meaning conf.allow_only_compatible_base_modules=False config.allow_compatible_base_modules=False does different things for build-requires selection and for module reuse. Clarify this in the config key documentation. (This config key is really: True: "do what RHEL expects" False: "do what Fedora expects") --- diff --git a/module_build_service/common/config.py b/module_build_service/common/config.py index ea6ad0f..6e71fd9 100644 --- a/module_build_service/common/config.py +++ b/module_build_service/common/config.py @@ -440,8 +440,12 @@ class Config(object): "type": bool, "default": True, "desc": "When True, only modules built on top of compatible base modules are " - "considered by MBS as possible buildrequirement. When False, modules " - "built against any base module stream can be used as a buildrequire.", + "considered by MBS as possible buildrequirement or as a reuse candidate. " + "When False, modules built against any base module stream sharing a " + "virtual stream can be used as a buildrequire, but only modules built " + "against the exact same base module stream are considered as candidates " + "for reuse. Setting this to True requires base module streams to be of the " + " form: ...", }, "base_module_stream_exclusions": { "type": list, diff --git a/module_build_service/scheduler/reuse.py b/module_build_service/scheduler/reuse.py index 0af9f61..06ecde1 100644 --- a/module_build_service/scheduler/reuse.py +++ b/module_build_service/scheduler/reuse.py @@ -83,7 +83,9 @@ def get_reusable_module(module): # # 1) The `conf.allow_only_compatible_base_modules` is False. This means that MBS should # not try to find any compatible base modules in its DB and simply use the buildrequired - # base module as it is. + # base module as it is. (*NOTE* This is different than the meaning of + # allow_only_compatible_base_modules=False when looking up build requirements - where + # it means to accept any module buildrequiring a base modul sharing a virtual stream.) # 2) The `conf.allow_only_compatible_base_modules` is True and DBResolver is used. This means # that MBS should try to find the compatible modules using its database. # The `get_base_module_mmds` finds out the list of compatible modules and returns mmds of