meMO
← Back to overview

Release notes

What changed in each release.

The ontology, tools and Architect are versioned together under semantic versioning. Before 1.0 a change that breaks a model, a command or a setting raises the minor number; a fix or an addition that breaks nothing raises the patch. Each release is tagged in the repositories, so the version a model was written against can always be checked out.

Ontology · @memoarchitect/ontology

0.15.0 · experimental release

Breaking

Starters

One project skeleton

The manifest's templates map and init.defaultTemplate are replaced by init.template, and the samd, infusion-pump, monitoring-device and connected-device starters are removed. Start from an example instead: memo-architect init --example <id>.

Rules

A rule traces to a clause by a dependency

A rule's trace to the clause it enforces was a ref enforces member. It is now #EnforcesClause dependency from <Rule> to <clause>, <clause>;, written beside the rule. A rule may name several clauses or none. To move: replace each ref enforces : StandardClause[1..*] = a.b.c; with the dependency, spelling the clause with :: and importing memo_artifacts_standards_traceability::EnforcesClause. The previous form is tagged pre-typed-rule-clause-relation.

Added

Architect

Rule editor: obligation and the typed trace

The Rules view shows each rule's obligation and each EnforcesClause trace, filters by obligation, and no longer calls a rule with no clause a gap. The new-rule form takes an obligation (the severity follows it unless you choose one) and shows each chosen clause as the typed trace it writes.

Ontology

Product security and threat intelligence

Cybersecurity gains ThreatActor, AttackTechnique (an external framework's identifier), AttackPath, SecurityProperty, CybersecurityAssumption, SBOMComponent, PenTestFinding, PostmarketProcess and CyberRiskAssessment (inherent or residual, without copying the risk); thirteen relations that link them; and cveReference and vulnerabilityDisposition on a vulnerability. Additive: no existing model changes.

Rules

Rule obligation

Every rule states required, recommended or bestPractice (RuleObligationKind). Rules that trace to a clause start required; the rest start recommended. A rule that states no severity takes error, warning or info from it.

Earlier releases: the tags in memo.

Tools · @memoarchitect/tools

0.15.0 · experimental release

Breaking

Starters

No --template

memo-architect init copies the one skeleton the ontology's manifest names, and --example <id> starts from a copy of an example. --template and the template list in init --list are gone.

Commands

memo and memo-architect split

memo compiles, validates, packs and checks the toolchain; everything else, including init, is memo-architect. A retired command exits with an error naming its replacement. memo package is replaced by memo pack (a SysAnd KPAR) and memo-architect import kpar.

Commands

One verb to create a thing

memo-architect new package|requirement|rule|kind|plugin replaces create-package, req new, rules new, ontology add-kind and plugin create. The flags are unchanged except req new --template, which is new requirement --pattern. memo-architect sysand publish (a dry run) is memo publish. Each old name fails naming its replacement for one release.

Settings

The project names its compiler

A project names its compiler with toolchain.compiler. A person overrides it for themselves in their user settings; tool paths are found automatically and are rejected in a checked-in project file.

Rules

Rules read the new trace

The loader reads #EnforcesClause dependencies. Ontology 0.13.x and earlier, which use ref enforces, no longer show clause traces.

Added

Rules

Filter by obligation

memo validate --rules --rules-obligation required lists the rules of one obligation; new rule --obligation and --enforces write the new forms.

Performance

Faster edits, a smaller handoff

Stage 1 converts only the documents an edit reached and stores them compressed. With OpenSysML 0.10.0 or later, the compact API JSON format is used where the service offers it.

Migration

Converting an old project

memo-architect convert also writes the memo.package.yaml a converted project needs to load, and its warning names the methodology the old memo.config.yaml pinned. The new guide Convert an Old Project documents what it changes and what it leaves to you.

Packaging

Real SysAnd packages

memo pack builds a KPAR from the declared sources only, not from examples or the ontology. A package's .project.json lists the packages its sources import as urn:kpar:<package> usages with a ^version constraint (an extension lists the ontology, and any other extension it imports). memo-architect sysand publish (a dry run) stages exactly what memo pack stages, so it reports the real version and the same file set; before, it reported every version as 0.0.0.

Fixed

CLI

memo --version and memo prune

memo --version reports the installed version (it printed 0.6.7). memo prune removes pinned worktrees and assemblies not used lately.

Model

Paths through a typed usage, and a dependency lock

allocate fn to pump.motor now ends on the nested part, not on pump. memo.lock.yaml records the dependency versions a build used, and memo compile checks them.

Earlier releases: the tags in memo-tools.

Architect · @memoarchitect/architect

0.15.0 · experimental release

Breaking

Commands

memo-architect templates is removed

In Architect a template is a DHF document template. Project starters are gone, so start a project with init or init --example <id>.

Commands

Project commands live in memo-architect

init and the other project commands that were under memo are now memo-architect commands. A retired memo command exits with an error naming its replacement.

Added

Settings

Choose the compiler in Architect

The Compiler control sets the project's compiler and, separately, your own ("just for me"). memo-architect config set|get|unset does the same from a terminal.

Rules

Rule editor

Not in this release: obligation and the typed trace in the rule editor follow in a later one.

Earlier releases: the tags in memo-architect.