Hi Oleg, all,

I haven't dug into any of the code yet, but I've read through the document you were working on. It seems positive and makes sense. I did get a bit lost on the meaning of the "Tree Builder" section as it doesn't seem to describe the current tree or graph technique, but maybe illustrate the possible combinations?

Anyway, a few things caught my attention...

You mentioned about the inconsistency of whether 3.8.1 means "must be 3.8.1" vs "I'm using 3.8.1 right now but I'm not really sure which versions it works with". Pretty much everyone putting POMs together does the latter, as they are not trained in specifying ranges, and because projects do not always follow the guidelines on versioning such that compatibility can be measured. You also mentioned that some change to the way ranges are specified might be needed. I'm wondering what thoughts you have on how we specify dependencies need to be different from today?

I do think the compatibility question is an interesting one. We could theoretically build up a compatibility database in the central repository, even using clirr to make initial assessment on java artifacts. However this is unfortunately never a binary decision either, as you may not be using the incompatible parts, and compatibility can break in non-API ways.

I'm curious about how these work in terms of remote retrieval (ie, where consulting metadatasource is a costly operation). When I looked at p2 in Sept last year, they stored all the repository artifact metadata in a single, large file. Are we expecting to need some partial or full resolution of the repository content?

Do you think depth resolution is still relevant if we have a better method? I believe the only depth we really should care about is "1" - those immediately specified (and particularly those managed by depMgmt). With that in mind, how can the use of depMgmt help in reducing the problem space during resolution?

You also mention OSGi resolution at the end. Is it your intent that one of the goals of the mechanism is to be able to be a complete OSGi resolver?

I'm also interested in seeing explicit listing of the problems we aim to solve to ensure we have objectives/scope. For example:
- lack of alternate conflict resolution in current artifact mechanism
- reduction in amount of metadata and artifacts dragged in (ie, stuff that could use maven 2.0.9 still pulls down whatever version of maven it was built against, even when it's not used)
- deterministic building over time

Just my initial thoughts - I'll follow your progress as you continue investigating :)

Cheers,
Brett

--
Brett Porter
[EMAIL PROTECTED]
http://blogs.exist.com/bporter/


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

Reply via email to