diff --git a/src/python/jw/pkg/App.py b/src/python/jw/pkg/App.py index d5480a7a..af9b9311 100644 --- a/src/python/jw/pkg/App.py +++ b/src/python/jw/pkg/App.py @@ -210,6 +210,7 @@ class App(Base): names_only: bool, ) -> None: name = self.strip_module_from_spec(spec) + mod = re.split('([=><]+)', spec)[0].strip() if names_only: spec = name if spec in buf: @@ -219,6 +220,15 @@ class App(Base): buf.append(spec) return visited.add(spec) + needed_subpackage = 'devel' if mod.endswith(('-dev', '-devel')) else 'run' + if not self.is_installed(name, devel = True): + if not mod.endswith(('-dev', '-devel')): + if self.is_installed(name, devel = False): + return + raise Exception( + f'Unmet dependency on {mod}: the -{needed_subpackage} package ' + f'of project {name} is not installed' + ) vals = self.get_value(name, section, key) log( DEBUG,