From 3914659718b579a6978fda9930198d1fa0e3cf59 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Tue, 18 Aug 2020 00:16:03 +0100 Subject: [PATCH] Fix dependencies still being added if in provides Fixes #226 --- app/tasks/importtasks.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/app/tasks/importtasks.py b/app/tasks/importtasks.py index ff085cd..26e94f6 100644 --- a/app/tasks/importtasks.py +++ b/app/tasks/importtasks.py @@ -167,16 +167,27 @@ def updateMetaFromRelease(self, id, path): package.provides.clear() package.provides.extend(provides) - for dep in package.dependencies: - if dep.meta_package: - db.session.delete(dep) + # Delete all meta package dependencies + package.dependencies.filter(Dependency.meta_package != None).delete() - for meta in getMetaPackages(tree.fold("meta", "depends")): + # Get raw dependencies + depends = tree.fold("meta", "depends") + optional_depends = tree.fold("meta", "optional_depends") + + # Filter out provides + for mod in provides: + depends.discard(mod) + optional_depends.discard(mod) + + # Add dependencies + + for meta in getMetaPackages(depends): db.session.add(Dependency(package, meta=meta, optional=False)) - for meta in getMetaPackages(tree.fold("meta", "optional_depends")): + for meta in getMetaPackages(optional_depends): db.session.add(Dependency(package, meta=meta, optional=True)) + db.session.commit() except MinetestCheckError as err: -- 2.44.0