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 ______________________________________________________________________