Skip to main content

Module system

Module system 

Source
Expand description

ridl diff at the system (rsdl reference §14): the changes to a lowered system that are not contract changes.

The contracts of a workspace are compared by the ridl categories, through crate::diff_sets. What rsdl adds is structure — which components exist, their lines, and where each instance runs — and a change to it changes the derived links and never the contract. Such a change is listed under one of two headings and carries no verdict: neither compatible nor breaking. Which of them are breaking, and for whom, is the stability policy’s. A third heading, instance number changed, is the exception and is breaking.

  • Placement changed — a change in a deployment: a deployment added or removed, a machine added, removed or made external, an instance moved to another machine, or a labels, deprecated or backend key of the deployment, of a machine or of a placement line changed.

  • Composition changed — a change to the closure or to a component’s lines: a component added to or removed from the system, an offers or requires line added or removed, instances changed, a component made external, a distribution added or removed, a member line added to or removed from a distribution, or a labels, deprecated, tier or backend key of the system, of a component, of a distribution or of one of their lines changed.

  • Instance number changed — a locked instance number differs between the two sides, or a number moved to another instance whose old holder is still present. A provisional old number and a rename are not listed.

All read the lowered System of each side and nothing else.

Structs§

SystemChange
One change to the system, listed under its heading. Only a change under SystemHeading::InstanceNumberChanged carries a verdict: breaking.

Enums§

SystemHeading
The heading a system change is listed under (rsdl reference §14).

Functions§

diff_systems
Compares two lowered systems: the composition changes first, in the new closure’s order and then the removed components, then the placement changes, deployment by deployment in the new system’s order and then the removed deployments, and then the instance number changes. The doc fields (doc, the doc links, see, since) are never read: a doc edit is neither a placement nor a composition change, and a placement or composition change has no verdict (ADR-0026). The sizing fields (Deployment.sizing, Placement.sizing) are never read: the registry records them as not reported, reason sizing (ridl_core::attributes).
heading_text
The heading as the text report prints it: placement changed.