[maemo-developers] Autobuilder: building svn tags from garage
From: Ed Bartosh bartosh at gmail.comDate: Sun Sep 6 12:51:09 EEST 2009
- Previous message: New apps for fremantle with Qt?
- Next message: Autobuilder: building svn tags from garage
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2009/8/31 Marius Vollmer <marius.vollmer at nokia.com>: > 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. > True. > I think our internal buildbot (who does order source packages by their > dependencies) only looks at the direct dependencies. > Yes. And I'm going to use that code in autobuilder without redesigning. At least now. Later on I might consider to implement analyzing binary dependencies, but it will happen only if it's really needed. I doubt that this can be showstopper for first implementation of multiple package builds. > 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. > Thank you for the comments&suggstions. It definitely make sense to implement if we're talking about perfect build system. However for me it doesn't sound like thing to do right now. -- BR, Ed
- Previous message: New apps for fremantle with Qt?
- Next message: Autobuilder: building svn tags from garage
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]