[maemo-developers] extras: autobuilders
From: Graham Cobb g+770 at cobb.uk.netDate: Fri Nov 9 15:19:16 EET 2007
- Previous message: extras: autobuilders
- Next message: extras: autobuilders
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Friday 09 November 2007 09:11:16 Andrew Flegg wrote: > On Nov 9, 2007 8:34 AM, Mikhail Sobolev <mss at mawhrin.net> wrote: > > Let's create a separate thread about autobuilders. > > > > A simple question: what would you expect from an autobuilders? > > 1) Simple ability to upload a source package(s). > 2) Have that source package compiled on as many SDKs as possible (OS 2006, > OS 2007 and OS 2008 should be possible with some/most packages). > 3) The ability to update a source package in a simple manner (triggering a > recompile). > 4) When a new SDK is released, everything should be recompiled and > redeployed to extras-{devel,testing,...}. > > Ideally, anything which would appear in the Application Manager (ie: > Section: user/...) should also be updated/auto-created in the > downloads catalogue; but this is a nice to have. I would add a few things to Andrew's list in the area of dependency management as this is a subject dear to my heart! GPE consists of 7 user visible applications comprising a total of 30 packages with complex dependencies between them plus some non-GPE dependencies not in the standard Nokia repositories (like libsoup and libsqlite0). 5) Dependency aware. At a minimum the build system needs to be dependency aware: for example if an application and a library dependency are both updated, build the dependency first and then the application. 6) Dependency checking. One advantage of my current GPE build system is that every build starts in a clean environment. I know that the build doesn't depend on anything not listed as a dependency because it would fail if it did. This was one of the first problems I came across when I first started trying to build Maemo packages: I used a single scratchbox environment for all my development and lots of things had been installed over time: builds would be successful even though the list of build dependencies was incomplete and the resulting packages would have unexpected dependencies. So, the requirement would be to do builds in a clean environment where only the specified dependencies are loaded. There is an argument that says that dependency checking isn't the job of the autobuilder: its job is just to build and developers should be checking their dependencies themselves. But doing this would improve the quality of the packages (although not necessarily user-visible quality). 7) Forced rebuilds. One big problem is with libraries which are not actually version-controlled. This is a fairly small problem with GPE today but there are definitely other projects (OpenSync is certainly one) which consider themselves in to be in an Alpha phase and don't want to start versioning libraries until the APIs are more stable. This means that there are cases where a dependency is updated where all the dependent packages need to be rebuilt. Of course, this does not only apply in cases where library versioning is not in use. Even in cases where libraries are correctly versioned there may be some benefit (e.g. a performance benefit) in rebuilding a dependent application. What this is really saying is that there needs to be a way to force rebuilding a package even though it has not changed. And it would be useful to have that also allow a shorthand of "all packages dependent on package foo". 8) Although I don't think anyone is suggesting that the autobuilder should be an autotester, it could at least install the generated packages into an environment that also has everything else already installed. This would allow conflicts to be discovered; including conflicts that may never be noticed by the development community using extras-devel because no one has just the right combination installed. This could be a separate process I suppose: a tool which runs every night and just installs everything it finds in extras-devel into a clean scratchbox environment. Graham
- Previous message: extras: autobuilders
- Next message: extras: autobuilders
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]