The assumption is that it's chefdk that changes most often. If chefdk has
many constantly changing deps, I would move them to the project.
On Mar 18, 2014 9:11 PM, "Serdar Sutay" <notifications@github.com> wrote:

> In lib/omnibus/library.rb:
>
> > @@ -27,7 +27,24 @@ def initialize(project)
> >      end
> >
> >      def component_added(component)
> > -      @components << component unless @components.include?(component)
> > +      unless @components.find { |c| c.name == component.name }
> > +        @components << component
> > +      end
> > +    end
> > +
> > +    def build_order
> > +      head = []
> > +      tail = []
> > +      @components.each do |component|
> > +        if head.length == 0
> > +          head << component
> > +        elsif @project.dependencies.include?(component.name)
>
> This is how the chefdk-windows.rb project file looks like right now:
>
> dependency "preparation"
> dependency "ruby-windows"
> dependency "libyaml-windows"
> dependency "ruby-windows-devkit"
> dependency "chef-windows"
> dependency "chefdk"
> dependency "chef-client-msi"
>
> where chefdk project pulls in many things.
>
> We can change this optimize for the current logic here. But to me it's
> somewhat counter-intuitive why a dependency change of chefdk would
> trigger build of something before it. Maybe this is the optimum for server
> pipelines don't know.
>
> —
> Reply to this email directly or view it on GitHub<https://github.com/opscode/omnibus-ruby/pull/105/files#r10736622>
> .
>