Skip to content

v0.94.0

Latest

Choose a tag to compare

@robertblust robertblust released this 12 Oct 16:41
· 7 commits to main since this release
4088f5a

The requirements pack ships (#358): the goals people bring to a system and the statements a product is held to, a fourth pack beside software, organization and landscape. Core moves to 0.69.0 for one wording in R9, the four packs' manifests move with it, and the package moves to 0.94.0 with both reusable workflows' refs.

  • use-case is a type of the pack: all the ways of using a system to achieve one goal for one actor, fully dressed after Cockburn, at one of four goal levels, with its stakeholders and their interests, its labeled steps and extensions, its minimal and success guarantees, the features it asks something of and the use cases it includes. Its actors are seats where the company has them and names otherwise.
  • requirement is a type of the pack: one statement a product is held to, functional, quality or constraint, with an RFC 2119 modality, a ## Fit criterion, the features, products or use cases it ## Applies to and the company rules it follows.
  • Two checks stretch for the pack. A type's labels names one place or several, so a use case's steps and extensions share one page's labels. acyclic follows a list field, so includes never runs in a circle. Two row keys are new: descends, what a use case includes stands at its level or below, and branches, an extension's label is a step's label and one lowercase letter.
  • R9 admits an enum type column for a ref → by <Column> row beside a string one, so a schema that can list the types a row may name has R8 hold them, and a type off the list is one finding. The owner column stays a string. The requirement's ## Applies to is the first to use it.
  • init --pack requirements vendors the pack, and the pack's README says when to write a use case, a requirement or the software pack's feature design.

What breaks. For an instance, nothing: no core schema changes, and an instance that does not take the pack sees nothing new. For a consumer of ./checks, the public type TypeEntry.labels widens from one place to LabelPlace | LabelPlace[], which breaks a reader of labels.section and no writer of the entry; no consumer in the family reads it.

How to take it. Move the pin to v0.94.0 and run companygraph upgrade, which moves the vendored core and packs to 0.69.0. A company that says what its products must do before it builds them adds --pack requirements, or runs companygraph upgrade --pack requirements later.

Verified: npm run verify with its release check, typecheck, build:check and every test:* script pass, as do conventions-format and conventions-check; companygraph, robertblust and guestgraph mental-model, cloned at their main commits and upgraded with this checkout's CLI, go to core 0.69.0, pass check, and find nothing to do on a second upgrade.