Hi again, all,

I have another question about unusual ways to state dependencies.  We have a 
situation where module A depends on module B, and B changes more often than A.  
After some releases of B, we would like to be able to test it with existing 
released versions of A, then somehow state that existing version A:1.0-which 
was published as compatible with B:1.3, say-is also compatible with B:2.7.  We 
want to use strict version checking, rather than the typical behaviour of "just 
pick the latest version and hope for the best", or even "A:1.0 depends on 
B:1.+", because we only want to allow combinations which have been tested, for 
safety reasons.

I don't want to do this by publishing a modified version of the ivy.xml for A:1 
because, well, it's a release, so it shouldn't change later.  (Also, we're 
using Artifactory across multiple sites, and its caching of release 
versions-identified by path pattern-is smart in that it never bothers checking 
the originating server for changes.)

The only approach I've come up with that could work is an awkward one of 
externalising the version part of the dependencies.  This would involve the 
following module versions, created in the following order over time.

*         B:1.3

*         A:1.0, depending on B:+

*         A_depends_on_B:1.0-1.3, depending on A:1.0 and B:1.3

*         B:2.7

*         A_depends_on_B:1.0-2.7, depending on A:1.0 and B:2.7

We would require people to depend on A, B, and A_depends_on_B, each with 
non-floating versions.  I'm fairly sure I could add a custom Gradle resolution 
rule to enforce this way of doing things.

But, all that sounds quite painful and doesn't fit the usual way of doing 
things.  Does anyone have any other suggestions?

Regards,

Hugh Greene, Senior Software Developer
Toshiba Medical Visualization Systems Europe, Ltd
Bonnington Bond, 2 Anderson Place, Edinburgh EH6 5NP, UK
Tel + 44 (0)131 472 4792 / Fax + 44 (0) 131 472 4799
http://www.tmvse.com / mailto:hgre...@tmvse.com

DISCLAIMER
Unless indicated otherwise, the information contained in this message is 
privileged and confidential, and is intended only for the use of the 
addressee(s) named above and others who have been specifically authorized to 
receive it. If you are not the intended recipient, you are hereby notified that 
any dissemination, distribution or copying of this message and/or attachments 
is strictly prohibited. The company accepts no liability for any damage caused 
by any virus transmitted by this email. Furthermore, the company does not 
warrant a proper and complete transmission of this information, nor does it 
accept liability for any delays. If you have received this message in error, 
please contact the sender and delete the message.


______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
For more information please visit http://www.symanteccloud.com
______________________________________________________________________

Reply via email to