[sdk/kde-builder] /: refactor: Move check for ignored modules post-expansion to function

Andrew Shark <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit f680f98cdb30a1f076995fa1c90b2cedcea0dcb2 by Andrew Shark.
Committed on 19/07/2026 at 17:19.
Pushed by ashark into branch 'master'.

refactor: Move check for ignored modules post-expansion to function

M  +6    -0    data/kde-builder-logging.yaml
M  +2    -13   kde_builder_lib/application.py
M  +17   -0    kde_builder_lib/module_resolver.py

https://invent.kde.org/sdk/kde-builder/-/commit/f680f98cdb30a1f076995fa1c90b2cedcea0dcb2

diff --git a/data/kde-builder-logging.yaml b/data/kde-builder-logging.yaml
index 06c5c382..a33df409 100644
--- a/data/kde-builder-logging.yaml
+++ b/data/kde-builder-logging.yaml
@@ -82,6 +82,12 @@ loggers:
     handlers: [console]
     propagate: no
 
+  module-resolver:
+    level: INFO
+#    level: DEBUG
+    handlers: [console]
+    propagate: no
+
   module-set:
     level: INFO
 #    level: DEBUG
diff --git a/kde_builder_lib/application.py b/kde_builder_lib/application.py
index 3da12519..f6eb0aea 100644
--- a/kde_builder_lib/application.py
+++ b/kde_builder_lib/application.py
@@ -216,7 +216,7 @@ class Application:
             exit(0)
 
         ignored_in_global_section: set[str] = set(ctx.options["ignore-projects"])
-        ignored_in_global_section.discard("")  # do not place empty string element, there is a check with empty string element of module's module_set later (in post-expansion ignored-selectors check).
+        ignored_in_global_section.discard("")  # do not place empty string element, there is a check with empty string element of module's module_set later in filter_out_unneeded_modules().
         ctx.options["ignore-projects"] = []
 
         ignored_in_metadata: set[str] = {item.rsplit("/", 1)[-1] for item in ctx.metadata.ignored_projects}
@@ -338,18 +338,7 @@ class Application:
 
         modules = self._slice_resume_and_stop_points(modules)
 
-        # Check for ignored modules (post-expansion)
-        filtered_modules: list[Module] = []
-        for module in modules:
-            module_set_name = module.module_set.name if module.module_set else ""
-            if module.name not in ignored_selectors and module_set_name not in ignored_selectors:
-                filtered_modules.append(module)
-            else:
-                if module.name in [*module_resolver.explicit_kdeproject_selectors, *module_resolver.explicit_thirdparty_selectors]:
-                    logger_app.warning(f" y[*] Project y[{module.name}] was explicitly selected in command line, but removed due to being ignored.")
-                else:
-                    logger_app.debug(f"Project y[{module.name}] was removed due to being ignored.")
-        modules = filtered_modules
+        modules = module_resolver.filter_out_unneeded_modules(modules)
 
         for module in modules:
             module.set_resolved_repository()
diff --git a/kde_builder_lib/module_resolver.py b/kde_builder_lib/module_resolver.py
index ab9a575a..9b6d931b 100644
--- a/kde_builder_lib/module_resolver.py
+++ b/kde_builder_lib/module_resolver.py
@@ -12,6 +12,7 @@ from .kb_exception import KBException
 from .kb_exception import KBRuntimeError
 from .kb_exception import NoKDEProjectsFound
 from .kb_exception import UnknownKdeProjectException
+from .debug import KBLogger
 from .module.module import Module
 from .module_set.module_set import ModuleSet
 
@@ -19,6 +20,8 @@ if TYPE_CHECKING:
     from build_context import BuildContext
     from .metadata.kde_projects_reader import KDEProjectsReader
 
+logger_modres = KBLogger.getLogger("module-resolver")
+
 
 class ModuleResolver:
     """
@@ -313,6 +316,20 @@ class ModuleResolver:
         ret: Module | None = self.defined_projects.get(module_name, None)
         return ret
 
+    def filter_out_unneeded_modules(self, modules: list[Module]) -> list[Module]:
+        ignored_selectors = self.ignored_selectors
+        filtered_modules: list[Module] = []
+        for module in modules:
+            module_set_name = module.module_set.name if module.module_set else ""
+            if module.name not in ignored_selectors and module_set_name not in ignored_selectors:
+                filtered_modules.append(module)
+            else:
+                if module.name in [*self.explicit_kdeproject_selectors, *self.explicit_thirdparty_selectors]:
+                    logger_modres.warning(f" y[*] Project y[{module.name}] was explicitly selected in command line, but removed due to being ignored.")
+                else:
+                    logger_modres.debug(f"Project y[{module.name}] was removed due to being ignored.")
+        return filtered_modules
+
 """
 This class uses a multi-pass option resolving system, in accordance with
 the way kde-builder handles options. Consider a simple kde-builder.yaml:
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.