[ 
https://issues.apache.org/jira/browse/IVY-1176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13433747#comment-13433747
 ] 

Jacob Aleksynas edited comment on IVY-1176 at 8/15/12 8:01 AM:
---------------------------------------------------------------

I will consistently get ivy.deps.changed=true despite certainty that the deps 
have not changed, I am not sure how this flag relates to the various caches (if 
I remove the copy in the forced local repo wihtout clearing the cache, the 
resolve output still shows resolving from that repository).  

I am not using "SNAPSHOT" version, but I do often overwrite artifacts. I'm 
trying to build a more incremental system and this flag is the key to success, 
perhaps clarifying the documentation around this flag and what affects it, can 
help some of us understand what is going on. Since the hasChanged function is 
only comparing lists of mrids, I am not exactly sure if this flag would 
understand "changing" artifacts at all, since the revisions/modules wouldn't 
change but the artifacts themselves may.

There is also the transitivity issue with this flag.
SEE:  IVY-1370
                
      was (Author: jaleksynas):
    I will consistently get ivy.deps.changed=true despite certainty that the 
deps have not changed, I am not sure how this flag relates to the various 
caches (if I remove the copy in the forced local repo wihtout clearing the 
cache, the resolve output still shows resolving from that repository).  

I am not using "SNAPSHOT" version, but I do often overwrite artifacts. I'm 
trying to build a more incremental system and this flag is the key to success, 
perhaps clarifying the documentation around this flag and what affects it, can 
help some of us understand what is going on. 

By adding some debugging to the checkChanged method, I find that the parsing of 
the previous resolve file from the resolution-cache is compared to the current 
dependencies.  The parsing of the previous resolve just lists the DIRECT 
dependencies of the module; where are the list that is compared is the fully 
transitive resolution of the module. below is the results of said logging.

[ivy:resolve] STARTING previous report parsing: 
C:\svn\trunk\build\target\ivy\resolution-cache\myorg-mymoduleC-runtime.xml
[ivy:resolve] parser added: apache#commons-logging;1.1.1
[ivy:resolve] parser added: apache#commons-collections;3.2.1
[ivy:resolve] parser added: apache#log4j;1.2.8
[ivy:resolve] parser added: myorg#mymoduleA;0.0.462820
[ivy:resolve] parser added: myorg#mymoduleB;0.0.498568
[ivy:resolve] current added: myorg#mymoduleB;0.0.498568
[ivy:resolve] current added: jdom#jdom;1.1
[ivy:resolve] current added: apache#axis2-runtime;1.4.1.1
[ivy:resolve] current added: sun#activation;1.1
[ivy:resolve] current added: apache#axiom-api;1.2.7
[ivy:resolve] current added: apache#axiom-impl;1.2.7
[ivy:resolve] current added: apache#axis2-adb;1.4.1
[ivy:resolve] current added: apache#axis2-kernel;1.4.1.1
[ivy:resolve] current added: emory#backport-util-concurrent;3.1
[ivy:resolve] current added: apache#commons-codec;1.3
[ivy:resolve] current added: apache#commons-fileupload;1.2
[ivy:resolve] current added: apache#commons-httpclient;3.1
[ivy:resolve] current added: apache#geronimo-stax-api;1.0.1
[ivy:resolve] current added: apache#neethi;2.0.4
[ivy:resolve] current added: apache#woden-api;1.0M8
[ivy:resolve] current added: apache#wstx-asl;3.2.4
[ivy:resolve] current added: apache#xercesImpl;2.8.1
[ivy:resolve] current added: apache#xml-apis;1.3.04
[ivy:resolve] current added: apache#xmlschema;1.4.2
[ivy:resolve] current added: apache#wsdl4j;1.6.2
[ivy:resolve] current added: java#jaxrpc;1.1
[ivy:resolve] current added: springframework#spring;2.5.5
[ivy:resolve] current added: myorg#myutilities;0.0.510650
[ivy:resolve] current added: apache#commons-pool;1.2
[ivy:resolve] current skipped: apache#commons-collections;2.1
[ivy:resolve] current added: apache#commons-collections;3.2.1
[ivy:resolve] current added: myorg#mymoduleA;0.0.462820
[ivy:resolve] current added: apache#axiom-dom;1.2.7
[ivy:resolve] current skipped: apache#axis2-kernel;1.4.1
[ivy:resolve] current added: apache#log4j;1.2.8
[ivy:resolve] current added: apache#commons-logging;1.1.1
[ivy:resolve] previousDepSet: [apache#commons-collections;3.2.1, 
myorg#mymoduleA;0.0.462820, apache#commons-logging;1.1.1, 
myorg#mymoduleB;0.0.498568, apache#log4j;1.2.8]
[ivy:resolve] currentDepSet: [myorg#mymoduleB;0.0.498568, jdom#jdom;1.1, 
apache#axis2-runtime;1.4.1.1, sun#activation;1.1, apache#axiom-api;1.2.7, 
apache#axiom-impl;1.2.7, apache#axis2-adb;1.4.1, apache#axis2-kernel;1.4.1.1, 
emory#backport-util-concurrent;3.1, apache#commons-codec;1.3, 
apache#commons-fileupload;1.2, apache#commons-httpclient;3.1, 
apache#geronimo-stax-api;1.0.1, apache#neethi;2.0.4, apache#woden-api;1.0M8, 
apache#wstx-asl;3.2.4, apache#xercesImpl;2.8.1, apache#xml-apis;1.3.04, 
apache#xmlschema;1.4.2, apache#wsdl4j;1.6.2, java#jaxrpc;1.1, 
springframework#spring;2.5.5, myorg#myutilities;0.0.510650, 
apache#commons-pool;1.2, apache#commons-collections;3.2.1, 
myorg#mymoduleA;0.0.462820, apache#axiom-dom;1.2.7, apache#log4j;1.2.8, 
apache#commons-logging;1.1.1]

                  
> Problem with resolve (ivy.deps.changed) and timestamp of ivy.xml of 
> dependencies
> --------------------------------------------------------------------------------
>
>                 Key: IVY-1176
>                 URL: https://issues.apache.org/jira/browse/IVY-1176
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>            Reporter: subes
>            Priority: Blocker
>
> Hi,
> I am having the same Issue as Jan Vissers on the mailing list:
> http://mail-archives.apache.org/mod_mbox/ant-ivy-user/200803.mbox/%[email protected]%3E
> http://mail-archives.apache.org/mod_mbox/ant-ivy-user/200803.mbox/%[email protected]%3E
> The problem is, ivy.deps.changed does not get set to true if the timestamp of 
> the dependencies ivy.xml got updated.
> The call to resolve actually tells me that the new files got downloaded 
> (because of the updated timestamp), but ivy.deps.changed tells me that the 
> artifacts did not change.
> [ivy:resolve]         
> ---------------------------------------------------------------------
> [ivy:resolve]         |                  |            modules            ||   
> artifacts   |
> [ivy:resolve]         |       conf       | number| search|dwnlded|evicted|| 
> number|dwnlded|
> [ivy:resolve]         
> ---------------------------------------------------------------------
> [ivy:resolve]         |      default     |   26  |   1   |   1   |   0   ||   
> 26  |   1   |
> [ivy:resolve]         |       tests      |   3   |   1   |   1   |   0   ||   
> 3   |   1   |
> [ivy:resolve]         |      sources     |   10  |   1   |   1   |   0   ||   
> 10  |   1   |
> [ivy:resolve]         
> ---------------------------------------------------------------------
> --> ivy.deps.changed is "false"
> This behaviour makes ivy.deps.changed mostly useless for me to implement a 
> lazy build mechanism in a multi module project.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to