[[!meta title="Build Daemon Infrastructure"]] Summary ======= This pages documents the proposed infrastructure for handling package uploads, builds, and archive inclusions. Process ======= The following diagram summarizes the process: [[!img dev/buildd-infra.png size="x450" alt="buildd infrastructure diagram"]] The general process is as follows: 1. A maintainer uploads a source package (not necessarily his or her own – non-maintainer uploads are allowed) and changes file over SFTP into the review queue. (This can be done by hand or with the assistance of a script similar to Debian's dupload and dput scripts.) 2. A reviewer (whose job is similar to that of Debian's ftpmaster team members) examines the changes file and, if necessary, the source package itself and decides to either accept or reject the upload. If accepted, the package is added to the master build queue and all of the relevant build queues. 3. Each build daemon periodically checks the queues for which it is responsible. If packages are waiting to be built, it attempts to build the oldest one (first in, first out). If the build is successful, the daemon adds the produced binary packages to the archive queue. Either way, the queue run ends with the removal of the processed source package from the relevant queue. 4. When the master build daemon detects that a package no longer exists in any architecture build queue, it moves the source package and changes file into the archive queue. 5. When the archive inclusion daemon finds a source package in the archive queue, it includes in the archive the source package along with all of the built binary packages. 6. Users can finally download the source and binary packages from the archive using opkg.