[maemo-developers] Autobuilder: building svn tags from garage
From: Marius Vollmer marius.vollmer at nokia.comDate: Mon Aug 31 14:32:37 EEST 2009
- Previous message: Autobuilder: building svn tags from garage
- Next message: Autobuilder: building svn tags from garage
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
ext Ed Bartosh <bartosh at gmail.com> writes: > As I already said building in a proper order is already solved task. > There is no need to upload packages in build order if it can be done > automatically. It will only create extra job for developers. Here is something to consider: Source packages produce binary packages and they have dependies on binary packages. If you have a set of source packages, you need to order them so that any source package that has a dependency on a binary package is build after the source package that produces that binary. This is the obvious part. The interesting bit is this: Binary packages have dependencies on other binary packages. If you depend on a binary package that depends on another binary package, you also indirectly depend on that other package. This means that when ordering source packages, we need to look at all direct _and_indirect_ dependencies it has on binary packages, not just the direct dependencies. I think our internal buildbot (who does order source packages by their dependencies) only looks at the direct dependencies. Now, there is a slight complication: dependencies between binary packages are computed at build-time. That is, they are not known before actually building the binary package. The problem is still solveable if we interleave building with sorting: I.e., we start with an incomplete graph of dependencies (that contains all source packages and the binary packages they produce as nodes, the dependencies from source to binary as arrows, but not the dependencies between binary packages) and start building those source packages that do not have any dependencies on other packages in the graph. Then we look at the packages that have just been built and update the graph with the new dependencies. Then there are cycles of dependencies, of course, or more correctly, stronly connected components in the dependency graph. Absent any hints in the source packages themselves, these strongly connected components need to be broken up by humans, I think. I think the most advanced buildbot out there is the OpenSUSE one, which is also by Mer,right? Can't find a link right now.
- Previous message: Autobuilder: building svn tags from garage
- Next message: Autobuilder: building svn tags from garage
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]