113 Component Manifest

A component manifest is the _component_.predica file in a component root. It identifies the containing folder as a component root and records schema-evolution release metadata.

A component manifest has the following content model:

  1. A component declaration, when the manifest records a filesystem-location check.
  2. A releases block, when the component has schema-evolution release metadata.

Releases

A component with schema-evolution release metadata records it with a releases block. The schema evolution chapter defines the components that require this block. Each release entry records a component release and the release numbers of its serialised representation dependencies.


component SpaceShuttle;

releases
{
    0 :
    {
        name: "Release 1.0",
        date: (2012,April,18),
        acme.Geometry: 1,
        nasa.CommsModule: 0
    },
    1 :
    {
        name: "Release 1.1",
        date: (2015,July,11),
        acme.Geometry: 2,
        nasa.CommsModule: 3,
        nasa.Scrubber: 2
    },
    2 :
    {
        name: "Release 1.2",
        date: (2015,August,24),
        acme.Geometry: 2,
        nasa.Scrubber: 2
    },
    3 :
    {
        name: "Release 2.0",
        date: (2018,March,6),
        acme.Geometry: 4,
        nasa.Scrubber: 3,
        nasa.Telemetry: 0
    }
}
    

Release dates are metadata only and do not determine dependency versions. Dependency release numbers are explicit release metadata. The set of serialised representation dependencies grows or shrinks between component releases as the serialised representation changes.