Hi Christos,

> I am just not very happy with the repetitive constraints and the need to 
> include transitive dependencies in the version catalog whenever there is a 
> version mismatch that needs to be synced.

I share your pain - there is added verbosity here. I haven't found an
elegant way to deal with this. What palantir-consistent-versions did
(always taking the ceiling) is easier but less transparent, in my
opinion. I look forward to seeing something that would be a nice
middle ground.

> I tried integrating a platform module to understand its use case and 
> limitations, but it doesn't seem to be very helpful here. I therefore share 
> your opinion on that. It would be something we could consider if we publish 
> each Solr module separately and allow the users to sync the versions of each 
> module with the platform (as a BOM probably).

I did some prototyping with BOMs and platform modules but it never
worked for me quite right (I played with some intentionally hairy
transitive conflicts). Maybe it's my lack of experience or my lack of
understanding that is to blame here.

> In the other thread about Resolving dependencies with depdencychecks plugin 
> and in the Lucene project you went for two configuration groups, one for main 
> and one for test. I would probably do the same, but when I thought it 
> through, I was not sure if this is what we want. I assume unexpected behavior 
> if the main / compile and runtime configurations may use different versions 
> of libraries than the test compile and test runtime.

You are correct - the two different configurations (main/test) may
resolve transitives in a different way. My reasoning was that it's an
unlikely event - most of the time the test configuration will inherit
a bulk of deps from the main one, then add test-only libraries. The
overlap in their transitive set should be small or even none. The
benefit of keeping the two separate is to have an "inventory list" in
the lock file - you can clearly see when a new library (or an upgrade)
made it to the main set of dependencies when you're updating the lock
file and running git diff... This said, that plugin of mine is
actually fairly agnostic in terms of the number or arrangement of
configurations which are checked for consistency. So you could have
three separate ones - main, test and main+test... If there is an
inconsistency, it will be signalled and you'll have to correct it via
the constraint mechanism. Again - not sure which way is the best way
(what you did is likely better for consistency).

Dawid

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
For additional commands, e-mail: dev-h...@solr.apache.org

Reply via email to