Skip to content

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 | calculated and, when given, a source; datasheet values are marked assumed and carry their basis. cheme process streams shows 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.yaml records the fingerprints of the inputs it was built from; generated P&ID sheets name their generator: in plant.yaml. cheme validate reports artifacts edited by hand or out of date.
  • Reviews. Review records in reviews/ name the commit they reviewed (reviewed_commit), their scope and, optionally, a basis of files with revisions. cheme impact lists 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).