summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJannis Pohlmann <jannis.pohlmann@codethink.co.uk>2012-04-16 19:12:23 +0100
committerJannis Pohlmann <jannis.pohlmann@codethink.co.uk>2012-04-16 19:12:23 +0100
commit43fe89a63bb797129452fb690fd442c78d61805b (patch)
tree1411bfdbae91e047b3f2788c45206d5fa14c77ea
parent84e51a23a2ed2b9aeac03fc8f08050ecfc56ab4d (diff)
downloadmorph-43fe89a63bb797129452fb690fd442c78d61805b.tar.gz
Re-implement show-dependencies using ArtifactResolver and BuildOrder.
-rwxr-xr-xmorph23
-rw-r--r--tests/show-dependencies.stdout246
2 files changed, 137 insertions, 132 deletions
diff --git a/morph b/morph
index 36386750..ee4363d6 100755
--- a/morph
+++ b/morph
@@ -189,7 +189,6 @@ class Morph(cliapp.Application):
def cmd_show_dependencies(self, args):
'''Dumps the dependency tree of all input morphologies.'''
- graph = morphlib.buildgraph.BuildGraph()
pool = morphlib.sourcepool.SourcePool()
if not os.path.exists(self.settings['cachedir']):
@@ -226,17 +225,23 @@ class Morph(cliapp.Application):
morphology, filename)
pool.add(source)
- order = graph.compute_build_order(pool)
- self.output.write('dependency tree:\n')
- for source in sorted(pool, key=str):
- self.output.write(' %s\n' % source)
- for dependency in sorted(source.dependencies, key=str):
+ env = morphlib.buildenvironment.BuildEnvironment(self.settings)
+ computer = morphlib.cachekeycomputer.CacheKeyComputer(env)
+ resolver = morphlib.artifactresolver.ArtifactResolver(computer)
+ artifacts = resolver.resolve_artifacts(pool)
+
+ self.output.write('dependency graph:\n')
+ for artifact in sorted(artifacts, key=str):
+ self.output.write(' %s\n' % artifact)
+ for dependency in sorted(artifact.dependencies, key=str):
self.output.write(' -> %s\n' % dependency)
+
+ order = morphlib.buildorder.BuildOrder(artifacts)
self.output.write('build order:\n')
- for group in order:
+ for group in order.groups:
self.output.write(' group:\n')
- for source in group:
- self.output.write(' %s\n' % source)
+ for artifact in group:
+ self.output.write(' %s\n' % artifact)
def cmd_update_gits(self, args):
'''Update cached git repositories.
diff --git a/tests/show-dependencies.stdout b/tests/show-dependencies.stdout
index 095e8e63..7931ae71 100644
--- a/tests/show-dependencies.stdout
+++ b/tests/show-dependencies.stdout
@@ -1,133 +1,133 @@
-dependency tree:
- test-repo|master|cairo.morph
- test-repo|master|dbus-glib.morph
- -> test-repo|master|dbus.morph
- -> test-repo|master|glib.morph
- test-repo|master|dbus.morph
- test-repo|master|exo.morph
- -> test-repo|master|gtk-stack.morph
- -> test-repo|master|libxfce4util.morph
- test-repo|master|fontconfig.morph
- test-repo|master|freetype.morph
- test-repo|master|garcon.morph
- -> test-repo|master|gtk-stack.morph
- -> test-repo|master|libxfce4util.morph
- test-repo|master|gdk-pixbuf.morph
- -> test-repo|master|glib.morph
- test-repo|master|glib.morph
- test-repo|master|gtk-stack.morph
- -> test-repo|master|cairo.morph
- -> test-repo|master|dbus-glib.morph
- -> test-repo|master|dbus.morph
- -> test-repo|master|fontconfig.morph
- -> test-repo|master|freetype.morph
- -> test-repo|master|gdk-pixbuf.morph
- -> test-repo|master|glib.morph
- -> test-repo|master|gtk.morph
- -> test-repo|master|pango.morph
- test-repo|master|gtk-xfce-engine.morph
- -> test-repo|master|garcon.morph
- -> test-repo|master|gtk-stack.morph
- -> test-repo|master|libxfce4ui.morph
- -> test-repo|master|xfconf.morph
- test-repo|master|gtk.morph
- -> test-repo|master|cairo.morph
- -> test-repo|master|gdk-pixbuf.morph
- -> test-repo|master|glib.morph
- -> test-repo|master|pango.morph
- test-repo|master|libxfce4ui.morph
- -> test-repo|master|gtk-stack.morph
- -> test-repo|master|xfconf.morph
- test-repo|master|libxfce4util.morph
- -> test-repo|master|gtk-stack.morph
- test-repo|master|pango.morph
- -> test-repo|master|fontconfig.morph
- -> test-repo|master|freetype.morph
- test-repo|master|thunar.morph
- -> test-repo|master|exo.morph
- -> test-repo|master|gtk-stack.morph
- -> test-repo|master|libxfce4ui.morph
- test-repo|master|tumbler.morph
- -> test-repo|master|gtk-stack.morph
- test-repo|master|xfce-core.morph
- -> test-repo|master|exo.morph
- -> test-repo|master|garcon.morph
- -> test-repo|master|gtk-stack.morph
- -> test-repo|master|gtk-xfce-engine.morph
- -> test-repo|master|libxfce4ui.morph
- -> test-repo|master|libxfce4util.morph
- -> test-repo|master|thunar.morph
- -> test-repo|master|tumbler.morph
- -> test-repo|master|xfce4-appfinder.morph
- -> test-repo|master|xfce4-panel.morph
- -> test-repo|master|xfce4-session.morph
- -> test-repo|master|xfce4-settings.morph
- -> test-repo|master|xfconf.morph
- -> test-repo|master|xfdesktop.morph
- -> test-repo|master|xfwm4.morph
- test-repo|master|xfce4-appfinder.morph
- -> test-repo|master|garcon.morph
- -> test-repo|master|gtk-stack.morph
- -> test-repo|master|libxfce4ui.morph
- -> test-repo|master|xfconf.morph
- test-repo|master|xfce4-panel.morph
- -> test-repo|master|exo.morph
- -> test-repo|master|garcon.morph
- -> test-repo|master|gtk-stack.morph
- -> test-repo|master|libxfce4ui.morph
- test-repo|master|xfce4-session.morph
- -> test-repo|master|exo.morph
- -> test-repo|master|gtk-stack.morph
- -> test-repo|master|libxfce4ui.morph
- -> test-repo|master|xfconf.morph
- test-repo|master|xfce4-settings.morph
- -> test-repo|master|exo.morph
- -> test-repo|master|gtk-stack.morph
- -> test-repo|master|libxfce4ui.morph
- -> test-repo|master|xfconf.morph
- test-repo|master|xfconf.morph
- -> test-repo|master|gtk-stack.morph
- -> test-repo|master|libxfce4util.morph
- test-repo|master|xfdesktop.morph
- -> test-repo|master|gtk-stack.morph
- -> test-repo|master|libxfce4ui.morph
- -> test-repo|master|xfconf.morph
- test-repo|master|xfwm4.morph
- -> test-repo|master|gtk-stack.morph
- -> test-repo|master|libxfce4ui.morph
- -> test-repo|master|xfconf.morph
+dependency graph:
+ test-repo|master|cairo.morph|cairo
+ test-repo|master|dbus-glib.morph|dbus-glib
+ -> test-repo|master|dbus.morph|dbus
+ -> test-repo|master|glib.morph|glib
+ test-repo|master|dbus.morph|dbus
+ test-repo|master|exo.morph|exo
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ -> test-repo|master|libxfce4util.morph|libxfce4util
+ test-repo|master|fontconfig.morph|fontconfig
+ test-repo|master|freetype.morph|freetype
+ test-repo|master|garcon.morph|garcon
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ -> test-repo|master|libxfce4util.morph|libxfce4util
+ test-repo|master|gdk-pixbuf.morph|gdk-pixbuf
+ -> test-repo|master|glib.morph|glib
+ test-repo|master|glib.morph|glib
+ test-repo|master|gtk-stack.morph|gtk-stack
+ -> test-repo|master|cairo.morph|cairo
+ -> test-repo|master|dbus-glib.morph|dbus-glib
+ -> test-repo|master|dbus.morph|dbus
+ -> test-repo|master|fontconfig.morph|fontconfig
+ -> test-repo|master|freetype.morph|freetype
+ -> test-repo|master|gdk-pixbuf.morph|gdk-pixbuf
+ -> test-repo|master|glib.morph|glib
+ -> test-repo|master|gtk.morph|gtk
+ -> test-repo|master|pango.morph|pango
+ test-repo|master|gtk-xfce-engine.morph|gtk-xfce-engine
+ -> test-repo|master|garcon.morph|garcon
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ -> test-repo|master|libxfce4ui.morph|libxfce4ui
+ -> test-repo|master|xfconf.morph|xfconf
+ test-repo|master|gtk.morph|gtk
+ -> test-repo|master|cairo.morph|cairo
+ -> test-repo|master|gdk-pixbuf.morph|gdk-pixbuf
+ -> test-repo|master|glib.morph|glib
+ -> test-repo|master|pango.morph|pango
+ test-repo|master|libxfce4ui.morph|libxfce4ui
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ -> test-repo|master|xfconf.morph|xfconf
+ test-repo|master|libxfce4util.morph|libxfce4util
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ test-repo|master|pango.morph|pango
+ -> test-repo|master|fontconfig.morph|fontconfig
+ -> test-repo|master|freetype.morph|freetype
+ test-repo|master|thunar.morph|thunar
+ -> test-repo|master|exo.morph|exo
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ -> test-repo|master|libxfce4ui.morph|libxfce4ui
+ test-repo|master|tumbler.morph|tumbler
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ test-repo|master|xfce-core.morph|xfce-core
+ -> test-repo|master|exo.morph|exo
+ -> test-repo|master|garcon.morph|garcon
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ -> test-repo|master|gtk-xfce-engine.morph|gtk-xfce-engine
+ -> test-repo|master|libxfce4ui.morph|libxfce4ui
+ -> test-repo|master|libxfce4util.morph|libxfce4util
+ -> test-repo|master|thunar.morph|thunar
+ -> test-repo|master|tumbler.morph|tumbler
+ -> test-repo|master|xfce4-appfinder.morph|xfce4-appfinder
+ -> test-repo|master|xfce4-panel.morph|xfce4-panel
+ -> test-repo|master|xfce4-session.morph|xfce4-session
+ -> test-repo|master|xfce4-settings.morph|xfce4-settings
+ -> test-repo|master|xfconf.morph|xfconf
+ -> test-repo|master|xfdesktop.morph|xfdesktop
+ -> test-repo|master|xfwm4.morph|xfwm4
+ test-repo|master|xfce4-appfinder.morph|xfce4-appfinder
+ -> test-repo|master|garcon.morph|garcon
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ -> test-repo|master|libxfce4ui.morph|libxfce4ui
+ -> test-repo|master|xfconf.morph|xfconf
+ test-repo|master|xfce4-panel.morph|xfce4-panel
+ -> test-repo|master|exo.morph|exo
+ -> test-repo|master|garcon.morph|garcon
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ -> test-repo|master|libxfce4ui.morph|libxfce4ui
+ test-repo|master|xfce4-session.morph|xfce4-session
+ -> test-repo|master|exo.morph|exo
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ -> test-repo|master|libxfce4ui.morph|libxfce4ui
+ -> test-repo|master|xfconf.morph|xfconf
+ test-repo|master|xfce4-settings.morph|xfce4-settings
+ -> test-repo|master|exo.morph|exo
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ -> test-repo|master|libxfce4ui.morph|libxfce4ui
+ -> test-repo|master|xfconf.morph|xfconf
+ test-repo|master|xfconf.morph|xfconf
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ -> test-repo|master|libxfce4util.morph|libxfce4util
+ test-repo|master|xfdesktop.morph|xfdesktop
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ -> test-repo|master|libxfce4ui.morph|libxfce4ui
+ -> test-repo|master|xfconf.morph|xfconf
+ test-repo|master|xfwm4.morph|xfwm4
+ -> test-repo|master|gtk-stack.morph|gtk-stack
+ -> test-repo|master|libxfce4ui.morph|libxfce4ui
+ -> test-repo|master|xfconf.morph|xfconf
build order:
group:
- test-repo|master|freetype.morph
- test-repo|master|fontconfig.morph
- test-repo|master|cairo.morph
- test-repo|master|glib.morph
- test-repo|master|dbus.morph
+ test-repo|master|freetype.morph|freetype
+ test-repo|master|fontconfig.morph|fontconfig
+ test-repo|master|cairo.morph|cairo
+ test-repo|master|glib.morph|glib
+ test-repo|master|dbus.morph|dbus
group:
- test-repo|master|pango.morph
- test-repo|master|gdk-pixbuf.morph
- test-repo|master|dbus-glib.morph
+ test-repo|master|pango.morph|pango
+ test-repo|master|gdk-pixbuf.morph|gdk-pixbuf
+ test-repo|master|dbus-glib.morph|dbus-glib
group:
- test-repo|master|gtk.morph
+ test-repo|master|gtk.morph|gtk
group:
- test-repo|master|gtk-stack.morph
+ test-repo|master|gtk-stack.morph|gtk-stack
group:
- test-repo|master|libxfce4util.morph
- test-repo|master|tumbler.morph
+ test-repo|master|libxfce4util.morph|libxfce4util
+ test-repo|master|tumbler.morph|tumbler
group:
- test-repo|master|xfconf.morph
- test-repo|master|exo.morph
- test-repo|master|garcon.morph
+ test-repo|master|xfconf.morph|xfconf
+ test-repo|master|exo.morph|exo
+ test-repo|master|garcon.morph|garcon
group:
- test-repo|master|libxfce4ui.morph
+ test-repo|master|libxfce4ui.morph|libxfce4ui
group:
- test-repo|master|thunar.morph
- test-repo|master|xfce4-panel.morph
- test-repo|master|xfce4-settings.morph
- test-repo|master|xfce4-session.morph
- test-repo|master|xfwm4.morph
- test-repo|master|xfdesktop.morph
- test-repo|master|xfce4-appfinder.morph
- test-repo|master|gtk-xfce-engine.morph
+ test-repo|master|thunar.morph|thunar
+ test-repo|master|xfce4-panel.morph|xfce4-panel
+ test-repo|master|xfce4-settings.morph|xfce4-settings
+ test-repo|master|xfce4-session.morph|xfce4-session
+ test-repo|master|xfwm4.morph|xfwm4
+ test-repo|master|xfdesktop.morph|xfdesktop
+ test-repo|master|xfce4-appfinder.morph|xfce4-appfinder
+ test-repo|master|gtk-xfce-engine.morph|gtk-xfce-engine
group:
- test-repo|master|xfce-core.morph
+ test-repo|master|xfce-core.morph|xfce-core