Shawn Castrianni wrote:
I have my standalone ivy builds working great such that any developer can build 
and retrieve dependencies.  However, now I am trying to get automated builds 
going for continuous integration, scheduled nightly builds, etc.  I was curious 
what people out there are using.  I always run into the problem of coordinating 
the automated build systems build numbers and ivy's build numbers.  It would be 
great if they could be the same such that a developer could look at the 
automated build website and see builds with numbers that match the number in 
the ivy repository.

I would not use the 'automated' build number, but do the promotion 'on demand'.

Strictly speaking only a human can know if a version is actually a minor or a major bump for a version and as far as the 'build number' goes, you always have one available which is more meaningful than anything else, it's the revision number of your scm which you can pull easily during your build process, you don't need to increment/commit etc...your scm does that.

I also see overlap in functionality between ivy and automated build systems 
with dependency management, publishing, and promotion.  I have all of that 
working with ivy and am wondering if I just ignore those aspects of the 
automated build system in favor of ivy?
That depends what you want to do.

In a previous shop (which was actually last century), I was always building the current trunk (which were always having fixed revision for dependencies), plus the stable branches (with fixed revision of dependencies as well of course) plus the 'future possible trunk', which was the trunk of all projects all depending on the trunk of their dependencies.

The 'future possible trunk' was merely an indication of a possible API breakage that could eventually occur if people are releasing a new version. So for a project that has modules which are pretty 'unstable' and that has a lot of API changes, etc... it's something that can be broken quite often but it can be a useful indicator 'sometimes' if used right as if there is relatively good discipline in your organization that can allow you to catch mistakes more early than after a release.

In our current shop...we work only with fixed revision. It was _extremely_ difficult to move from the original view of 'I depend on latest.development of everything' (which grew up organically from the fact that the project was created from scratch, modules were created, etc... and no real discipline as 'doing thing' was more important than 'doing it reasonably right').

Depending on the latest.dev for all your modules is as you can imagine is a total nightmare in term of stability of component because you never know on what you depend and that forces each developer to build the entire universe which is utterly stupid and then you have people hacking around to actually trying to decrease the build time, which creates even more problem, etc.... It's a very good way to have chaos in your organization as the view of the world will vary depending on people...

When you work with fixed revision that puts more emphasis on your process and you have a reasonably good idea of the code you depend on and you can see what people are doing.

-- stephane

Reply via email to