On 7 November 2011 22:48, Adam Murdoch <[email protected]> wrote:

>
> On 29/10/2011, at 7:13 AM, Adam Murdoch wrote:
>
> Hi,
>
> * The thing that the coordinates (group, module, version) refers to.
> Currently, this is called a module.
>
>
> I think for now we will call this a 'module version'.
>

At first I didn't like this, but trying it out in various ways, it seems to
work in a lot of cases:

   - "Which Module Version are you using?"
   - "I've got Module Version 'junit 4.8' forced, so it should always be
   used."
   - "If you exclude Module Version 'commons-logging 3.0' it should work
   for you."
   - "My Module depends on the following Module Versions:..."

One potential issue is that "version" is often used to refer to the version
number, called "revision" in ivy but "version" in our model. But since
there is a 1:1 mapping between: Module + Version => Module Version, this
should not be a big problem.

More problematic is that now the terms Dynamic Version and Changing Module
don't really work:

"Dynamic Version" really only means something to the consumer of the
Module: the Module producer doesn't really care. So maybe starting to use
the term "Module Version Selector" to refer to a what a dependency
declaration produces, which is essentially a Module + Version Selector. We
can then have Static Version Selectors and Dynamic Version Selectors. The
process of mapping a Dynamic Module Version Selector => a Module Version
should really be called "Selector Resolution", and it's this Selector
Resolution that is being cached.

"Changing Module" is actually an attribute of the Module Version itself,
not the dependency declaration. Unfortunately "Changing Module Version" has
exactly the wrong connotation: we're talking about a Module Version where
the "version" doesn't change but the content does. "Module Version with
changing content" is the best I can come up with at the moment. Not exactly
succinct!

So we'd have:
ResolutionStrategy.cacheDynamicVersionSelectorResolutionFor   or
.cacheDynamicVersionResolutionFor
ResolutionStrategy.cacheModuleVersionsWithChangingContentFor   or
.cacheModulesWithChangingContentFor
(the 1st candidates are closer to our standard terminology, the 2nd seem to
read better, imho).

-- 
Darrell (Daz) DeBoer
Principal Engineer, Gradleware
http://www.gradleware.com

Reply via email to