Greetings ivy-users
I am outlining a design approach (part of a migration towards Ant/Ivy/Artifactory) to address a common Release Engineering requirement to reproduce a prior release build in preparation for development an upcoming bug fix/patch release. Our traditional approach has been source code control centric (syncing from labels) and will certainly work correctly but at the cost of syncing and rebuilding everything. I want to perform proper due-diligence before caving in. We want to instead leverage the artifact repository captured the static revision numbers and minimize the amount of source code control synching (to the branched root module that has ivy.xml with static revisions only and any modules needed for dev to work with). The desire is to recreate the build their need not be any recompiling/packaging - using resolveMode="default" will pull the captured dependencies. In order for a future build reproduction scenario using this approach (to recreate the patch build), the updated module *and* it's dependees all the way to the root(s) have to also be published so as to update their ivy.xml metadata only (else the published modules are islands that will not be resolved to...) The sheer amount of publishing and also having to publish modules where the artifact is not changing (beyond metadata) is troublesome to me. Here's a simple example: In releases-lib-shared repo is A 1.0 -> B 1.0 -> C 1.0 *and* A 2.0 -> B 2.0 -> C 2.0 Imagine that C is like log4j and you want all dependees to use the new version. We want to update the first build as C 1.0 is broken so we want to first create: A 1.0 -> B 1.0 -> C 1.0 and then publish a fixed C 1.1 Well, in order to recreate that build we need something like A 1.1 -> B 1.1 -> C 1.1 Publishing C 1.1 without a B 1.1 (and A 1.1 to B 1.1) that refers to it will not allow us to recreate using our resolve from the branched root module approach explained above. Please confirm that it is inevitable that whenever modules are published to a release repository that either a) the entire ecosystem (root on down) be re-published b) the dependency paths (all of them down to C) be calculated and all of them be republished despite the fact this is a metadata driven only publish request (no artifact changes) Is there some other approach or advice about such a common scenario (ivy really needs the best practices regarding typical scenario's like this documented :-) - Rich