Skip to content
docsv0.30.2

RollbackContracts

Whether the inverses this app PROMISES are operations this app OFFERS. {@see \Milpa\Command\Effect\EffectProfile} refuses prose in a rollback contract, and that is as far as one profile can see: `nothing-to-roll-back` is a well-formed name — one segment with hyphens, exactly like `plugins.disable-unsafe` has to be — so nothing about the STRING says it names no operation. That question is about the TABLE, and it is answered here, where the table exists. It is a question of GRADUATION, not of boot. An app whose catalogue is missing an inverse is not broken — it is a house that promised something it cannot do, and the answer is a finding a person or an agent reads (`coa doctor`), not a runtime that refuses to start. Greenhouse `.milpa/promises/reversal-contract.yaml`: «an operation that promises reversibility and does not carry it does not GRADUATE». Identity, never spelling: the promise may be written `plugins:disable` and the operation registered as `plugins.disable`, and they are the same act ({@see OperationId}).

RollbackContracts::findings()

public static function findings(iterable $operations): array

The same answer as a sentence per broken promise — what a report prints.

Parameters

Parameters of findings()
NameTypeDescription
$operationsiterable<Operation>