On 28-May-08, at 8:58 AM, John Williams wrote:

Sorry about the tangent, but has any work been done yet for
graph-based dependency resolution?

Yes, the first iteration of it has been in the maven-artifact trunk for quite some time. Oleg Gusakov worked on the first iteration.

This has spawned two addition strains of work as we progressed and those are now in the sandbox as mercury. The focus of which is:

- atomic and efficient http transport which will easily support DAV client connections with robust support for SSL and proxies - graph based resolution with many corrections for ranges which dove tails in to the - incorporation of a SAT solver to deal with the difficult satisfaction problems of finding a working solution given the use of ranges

Oleg and I will talk more about it as we progress this week. But we have variations like scopes, profiles, and conflict resolution where the processing order makes a huge difference and so we're trying to arrive at a real spec for how this is done as a part of what we're doing.

 If I find the time to work on
Maven that's the first thing I'd want to work on.  Aside from being
able to implement conflict resolution strategies more easily, I think
a graph-based approach could have other benefits as well.  I've looked
into upgrading Maven's dependency reports to be more like Ivy's (which
are *vastly* better, IMHO), but Maven's dependency resolution doesn't
seem to gather enough information to do what I want.  In particular,
Ivy's reports show every path in the dependency graph to each
artifact, but Maven only shows a single path, and IIRC the dependency
resolution algorithm uses pruning that would make it impossible to
discover all paths.

On a related note, Maven's dependency resolution seems to be quite a
bit faster than than Ivy's, and I suspect Maven's conflict resolution
heuristic has a lot to do with that because it allows so much pruning
in the search for dependencies.  I suspect any change in conflict
resolution will make dependency resolution slower, possibly *much*
slower.  Does anyone have a concrete idea of how much speed is gained
by Maven's aggressive pruning?

On Wed, May 28, 2008 at 9:45 AM, Mark Hobson <[EMAIL PROTECTED]> wrote:
Ideally conflict resolvers would be local to a project, so that they
wouldn't have an impact on transitive dependencies.  This would be
something for the maven-artifact graph-based rewrite, I certainly
wouldn't like to patch the current event-based version to achieve
this!

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

A man enjoys his work when he understands the whole and when he
is responsible for the quality of the whole

-- Christopher Alexander, A Pattern Language



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to