Use-cases for version ranges?
cowwoc
cowwoc at bbs.darktech.org
Fri Nov 18 20:32:43 PST 2011
Brian Pontarelli wrote:
>
> I think the two fundamental issues I have with ranges are:
>
> 1. At any given time I can only be certain my code will work with one
> version of a dependency. That is the version I compile and test against.
> Therefore, as a developer, I should only define that version in my
> dependencies meta-data.
>
> 2. There should not be any magic upgrading of my dependencies at run or
> build time. Someone should be forced to specifically upgrade one of my
> dependencies and only for a really good reason. They should also be forced
> to test that upgrade to ensure it will work.
>
> Without module isolation, this problem was much more difficult because
> there could only be one version of a JAR on the classpath and therefore
> build tools needed to understand how to safely upgrade JARs. Some build
> tools did this better than others.
>
> With true isolation, this is less of an issue, making single versions even
> easier to use.
>
> Issues come back into play when modules export modules or with circular
> dependencies. These mimic the classpath behavior, which in my opinion is
> best solved via compatibility rather than ranges.
>
I can't speak for module isolation (care to explain what you mean?) but I
agree wholeheartedly with your two points. Whether we support version ranges
or end-user overrides, can we all agree that developers can only be expected
to certify that their code works with a single version of a dependency?
If so, the question becomes: what mechanism is best suited for allowing
someone other than the original developer to change the dependency
version... One approach is version ranges. Another approach is end-user
overrides. I don't understand what module isolation refers to but I suspect
that's a third option.
Gili
--
View this message in context: http://jigsaw-dev.1059479.n5.nabble.com/Use-cases-for-version-ranges-tp5002801p5006223.html
Sent from the jigsaw-dev mailing list archive at Nabble.com.
More information about the jigsaw-dev
mailing list