Ordering of versions

Stuart McCulloch mcculls at gmail.com
Mon Nov 14 08:20:20 PST 2011


On 14 Nov 2011, at 16:04, Brian Pontarelli wrote:

> It seems to me that the version scheme for a single module only impacts that module and not its dependencies. When the dependency graph is completely built and then traversed, modules are compared based on their scheme with all the other instances of themselves in the graph. Therefore, I don't think it impacts others at all.
> 
> Thoughts?

What happens if someone changes the Comparator<Version> implementation used in their module over time? (either by design or mistake)

You could end up with some situations where the ordering was not defined, or there were conflicting/ambiguous results.

The other downside of an executable versioning scheme is that you probably would have to download a full bundle (maybe with all its dependencies) in order to run its comparison method, only to find out that you didn't actually need that version. Executable schemes also make it harder to do static analysis in other languages and could introduce security issues (since you're running unknown code even before installing the bundle).

--
Cheers, Stuart

> -bp
> 
> 
> On Nov 14, 2011, at 7:49 AM, Peter Kriens wrote:
> 
>> Gili,
>> Can you explain how this would work when my modules use a different scheme than yours?
>> 
>> Kind regards,
>> 
>> 	Peter Kriens
>> 
>> On 13 nov. 2011, at 04:59, cowwoc wrote:
>> 
>>> 
>>> mark.reinhold wrote:
>>>> 
>>>> Support such semantics, sure, but I'm not sure it should prescribe them.
>>>> OSGi and Maven have established some useful and widely-used conventions
>>>> around version semantics but I've seen developers and customers use all
>>>> sorts of other wild and woolly version schemes over the years.  I'm not
>>>> convinced that a standard Java module system should require people to
>>>> abandon such schemes, unless they're just really totally broken.
>>>> 
>>> 
>>> Mark,
>>> 
>>> If at all possible, please consider allowing users to specify a
>>> Comparator<Version> (or Comparator<String> depending on your taste) on a
>>> per-module basis. This would allow users to use any versioning scheme they
>>> see fit.
>>> 
>>> Gili
>>> 
>>> --
>>> View this message in context: http://jigsaw-dev.1059479.n5.nabble.com/Ordering-of-versions-tp4970773p4988030.html
>>> Sent from the jigsaw-dev mailing list archive at Nabble.com.
>> 
> 




More information about the jigsaw-dev mailing list