Provenance¶
Every engineering value says where it comes from, and every generated artifact says what it was generated from:
- Values. In the process YAML each value carries
provenance: given | assumed | calculatedand, when given, asource; datasheet values are markedassumedand carry their basis.cheme process streamsshows the provenance in the stream table. - Generated artifacts. The BFD and PFD carry a provenance comment with the generator
version and the fingerprints of their inputs;
layout/plant-model.yamlrecords the fingerprints of the inputs it was built from; generated P&ID sheets name theirgenerator:inplant.yaml.cheme validatereports artifacts edited by hand or out of date. - Reviews. Review records in
reviews/name the commit they reviewed (reviewed_commit), theirscopeand, optionally, abasisof files with revisions.cheme impactlists the artifacts whose sources changed since they were reviewed or generated.
The shared model (relations such as derived-from, represents, analyses and depends-on, and fingerprints) is described in Architecture.
impact¶
cheme impact [--json] lists, read-only, the artifacts whose recorded source revision or
fingerprint no longer matches the current source, as cheme.review-needed findings at level
info: a review record whose scope changed since its reviewed_commit (or git cannot tell),
except files a later record of the same topic covers (that record supersedes it for them);
entries of a record's optional basis: list ({path, revision, relation}, revision a commit or
sha256:<hex>) whose path changed; generated BFD/PFD sheets whose process/*.yaml changed; and
stale calculated stream values. It exits 0, regenerates nothing and declares nothing invalid;
validate, check and status are unchanged. --json prints {commit, findings} (each
finding with its id); GET /api/impact returns the same. In Python:
chemeascode.project.impact.review_needed (or impact_report for the JSON form).