summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dev/todo/buildd-infra.mdwn40
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.