I would recommend doing a combination of the first and second approaches. Suppose you go by Ivy's three default publication statuses: * integration * milestone * release
Then you can have separate integration, milestone, and release repositories. This way you're assured that there's no way that integration or milestone-status modules will creep into your release build when it's pointing just at the release repository. Your milestone build can point at both milestone and release repos in a chain. Your integration build can point at all three in a chain. Beyond the use of different repositories, though, you should specify the associated status in the published ivy.xml: /ivy-module/i...@status. See: http://ant.apache.org/ivy/history/latest-milestone/ivyfile/info.html And: http://ant.apache.org/ivy/history/latest-milestone/use/deliver.html Beyond this, you get into the question of how to handle integration versions--which really apply to both the integration and milestone repos. Do you overwrite every time there's a new build of the same module, or do you prolifically version where every new build gets its own buildnumber appended to the version, whether it's a timestamp or incremented number? And then there's the question of whether you want to use special suffixes like -SNAPSHOT or -DEV in the revision to represent integration builds. There are so many reasonable variations on how to version integration builds, but regardless of which you choose, I would still recommend having one resolver for each status. One additional convention, at least if you're using Subversion, is to establish a rough correspondence between Ivy publication statuses and Subversion location conventions, if you're branching to do releases rather than the other way around: * integration: trunk * milestone: branch * release: tags On Thu, Oct 28, 2010 at 7:54 PM, Denis Krizanovic < [email protected]> wrote: > Hi There, > > I've been thinking a lot about how to know which of my artifacts have > made it into which of my environments. > > Firstly, because I want one to get to this ideal -> > http://www.itilcollege.com/DefinitiveSoftwareLibraryITIL.html > > and secondly, because I want to delete artifacts that did not make it > out of development. > > I have two basic approaches in mind.. One is to somehow annotate the > ivy.xml with info attributes through republishing the same artifact to > the single repository. The second approach is to promote the same > artifact to environment specific repositories. > > Has anyone else thought about this kind of problem? >
