Navigation

Outputs, Evidence, And Runtime Artifacts

Builders need to communicate more than the fact that a derivation exists. A user often needs to know what the artifact contains, how it was checked, and how it should run. metaBuilder gives those concerns explicit places in the build description.

Outputs

Outputs name the results a build promises. A generated source tree, a static library, a CLI binary, a JSON manifest, package metadata, or a service tree are typical examples. An output should have a name, a path, and a format, which lets views explain what the build returns without executing it.

Descriptors

Descriptors are structured metadata. Use them when a builder wants to report facts about the artifact, such as compiler identity, runtime version, protocol, generated files, package manager, or artifact kind. Descriptors are better than conventions hidden in filenames because they are part of the program's data.

Evidence

Evidence records checks or claims about the artifact. A syntax-check command, a smoke-test expectation, a generated-artifact invariant, or a compatibility assertion can each be recorded as evidence. Evidence does not replace tests. It gives the builder a typed place to report why a produced artifact should be trusted.

Runtime Artifacts

Some builders produce things that run as services. For those builders the runtime shape should be explicit, and it is expressed with the runtime operations for services, protocols, lifecycle capabilities, and runtime units. These runtime declarations are kept structure. They survive into the materialized result, so the same builder describes both build-time and runtime behavior and returns both from one program.