← Back to team overview

keryx team mailing list archive

[Merge] lp:~mac9416/keryx/devel into lp:keryx/devel

 

mac9416 has proposed merging lp:~mac9416/keryx/devel into lp:keryx/devel.

    Requested reviews:
    Keryx Admins (keryx-admins)


Nightly merge time.

Today (I think) I perfected finding upgradeable packages.

Next on the agenda: dependency calculation. Stay tuned. 
-- 
https://code.launchpad.net/~mac9416/keryx/devel/+merge/12854
Your team Keryx Development Team is subscribed to branch lp:keryx/devel.
=== modified file 'libkeryx/__init__.py'
--- libkeryx/__init__.py	2009-10-04 01:14:50 +0000
+++ libkeryx/__init__.py	2009-10-05 01:45:19 +0000
@@ -142,6 +142,18 @@
     def OnUpgrade(self):
         """Should be overridden in definition"""
         pass
+
+
+    def Dependencies(self, packages):
+        """Return a list of depends/recommends/suggests of packages"""
+        if not self.Exists():
+            raise AttributeError, "Project does not exist"
+        self.OnDependencies(packages)
+        
+        
+    def OnDependencies(self, packages):
+        """Should be overridden in definition"""
+        pass
         
         
     def Download(self, packages):

=== modified file 'libkeryx/definitions/dpkg/__init__.py'
--- libkeryx/definitions/dpkg/__init__.py	2009-10-04 01:39:54 +0000
+++ libkeryx/definitions/dpkg/__init__.py	2009-10-05 01:45:19 +0000
@@ -23,6 +23,7 @@
 from sqlalchemy import *
 from sqlalchemy.orm import mapper, sessionmaker
 from minideblib import AptRepoClient
+from minideblib.DpkgVersion import DpkgVersion
 
 
 class dpkg(Definition):
@@ -194,17 +195,24 @@
 
     def OnUpgrade(self):
         """Upgrade out-of-date packages"""
-        self.apt_client.get_available_binaries()
         status = self.session.query(Status). \
-                            filter(Project.name==self.project).all()
+                            filter(Status.proj_id==self.project_entry.id).all()
         upgrade = []
         for pkg in status:
             best_ver = self.apt_client.get_best_binary_version(pkg.name)[1]
-            if not best_ver == pkg.version:
+            if best_ver == None:
+                print "%s will not be upgraded" % (pkg.name)
+            elif DpkgVersion(best_ver) > DpkgVersion(pkg.version):
                 upgrade.append(pkg.name)
+                #TODO: Add PPA support to minideblib so this will not be necessary.
         print "%i upgradeable packages" % (len(upgrade))
         self.Download(upgrade)
 
+
+    def OnDependencies(self, packages):
+        """Return a list of depends/recommends/suggests of packages"""
+        print "Dependency Calculatio: coming soon to a town near you."
+
                 
     def OnDownload(self, packages):
         """Download packages and their dependencies"""


Follow ups