'builds list' - Lists the builds and also lists directories within.
'builds new' - Builds an object
'builds queue' - Queues a job to build an object.
'builds job-done' - Callback to store a queued build.
'builds status' - Views build information or file stat within.
'builds view' - Views the job log or file data within the build.
'builds verify' - Verifies the integrity of the given stored build.
The BuildRecord keeps track of the information for each build and
replaces the Note that did so before.
StorageManager keeps track of Mime handling, because that makes the most
sense. This lets the build manager make use of it since the build
manager doesn't track resources. It could, though, list resources as
files within builds (much like the object manager does when given a
KeyManager/KeyWriteManager have a signBuild/verifyBuild pair of
functions that help keep track of the integrity of builds. When a build
finishes, the built files are hashed deterministically. That hash is
then signed along with the task information. That way, there is a way of
verifying both the task and the binaries that result from it. You can
use that integrity to check that two builds are equal (it does not track
atime/mtime or attributes) and also to track that binaries distributed
from two federated nodes are the intended set of binaries, according to
the object author. 'builds verify' will return 'true' or 'false' when
assessing the integrity. Anyone can sign a build, so it may be important
to only verify signatures from the object author, but any actor can be
trusted in this regard moving forward.
JobManager#finishBuild is finally destroyed justifiably.
IngestManager and ManifestManager now make use of the BuildManager.
scripts/importOldBuilds.py - Duplicates any existing builds Notes into the db.