Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Part B

Part B. Contracts across the seams

B.1 The dependency description

  1. read-dependencies: given a repository state, every dependency it declares, each with its identity, every declaration of it and the pin each gives; and every declaration that could not be read, with the reason.
  2. read-tiers: given a repository state, its tiers, the cadence of each, and which identities each names.
  3. Both answers are the same for the same repository state, and reading either changes nothing (5).

B.2 The release source

  1. list-releases: given an identity, every release its source publishes, each with its version, date and link, and whether the source has withdrawn it; or that the source could not be reached.
  2. order: given an identity and two versions, which is newer, that they are the same, or that their order cannot be decided.
  3. The order is the source’s own (6), and the same two versions always order the same way.

B.3 The notes source

  1. read-notes: given an identity and a version, what upstream wrote of that release, whole and unchanged, or that it wrote nothing.

B.4 The advisory source

  1. read-advisories: given an identity and a version, every advisory that names that version, each with its identity, its severity as the advisory gives it, and a link.

B.5 The store

  1. read: given a repository, its held state and the version it was read at.
  2. write: given a repository, the version read and the next held state. The write is all or nothing, and succeeds only if the held state is still at the version read (30).
  3. The store holds nothing in the repository’s content (28), and every checkout of one repository reaches the same store.

B.6 Binding the contracts

  1. Each seam is bound by naming one or more profiles of Part C. Any number of dependency descriptions, release sources, notes sources and advisory sources are bound at once, each answering for the identities it knows, and exactly one store is written.
  2. One conformance suite holds every profile to Parts A and B; a profile that fails it is not one.