diff options
Diffstat (limited to 'dev/todo')
-rw-r--r-- | dev/todo/buildd-infra.mdwn | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/dev/todo/buildd-infra.mdwn b/dev/todo/buildd-infra.mdwn new file mode 100644 index 0000000..c190031 --- /dev/null +++ b/dev/todo/buildd-infra.mdwn @@ -0,0 +1,40 @@ +[[!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. |