On 5/17/05, Dominique Devienne <[EMAIL PROTECTED]> wrote: > I've used a more lenient model for my transitive dependency. The exact > version used to build something is recorded, but which version of a > given dependency to use is left up to the client.
This is pretty much what is in Maven (and the artifact tasks) at the moment. It uses the "nearest" definition for conflict resolution. So declaring in the POM of the current project can ensure a particular version, otherwise you'll get one at depth 1, etc. > A colleage proposed an interesting idea of using predicates to state > compatibility between components the different version of a component. What we have is pretty basic, and we're definitely looking to improve it with some other types of resolution, such as what you've described. Ideally, a project would declare the minimum version it needs to work (and if applicable, maximum - or perhaps even known incompatible versions in between). The final project should use the most recent version allowed by all of the definitions (on the assumption that the most recent is backwards compatible and has less bugs than earlier versions :) Again, local definition of an explicit version will ensure you get what you ask for. This also has important consequences for making builds reproducible in the future, too - obviously if the version remains flexible at the point it is published then it might not be the same later on. There needs to be a point during QA where you can lock it down to a version. if you'd like to track the feature, http://jira.codehaus.org/browse/MNG-303 Cheers, Brett --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]