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
