Release notes¶
Versioned under semantic versioning. Before 1.0 a change that breaks a model, a command or a setting raises the minor number; a fix or addition that breaks nothing raises the patch. Every release is tagged in the repository. The notes for all three packages are also on memoarchitect.com/releases.html.
0.16.2¶
- Views and viewpoints.
convertfiles a view under the one viewpoint it traces to. It now reads everyviewpointDefinitionin a file, not the first, so a file of views for different viewpoints is no longer misplaced. A view that traces to several viewpoints, or to none, goes underviewpoints/shared/(it wasunassigned/); a view that traces to none still warns (unclassified-view).convertcarriesmemo.identity.yamlwith the packages it renames, so a moved element keeps its short id and uuid, and a package outside the project's namespace keeps its name. - Pinned builds. A family whose
systems/folder sits undercatalog/(the layoutconvertproduces) is found by the build that pins its systems. - Validator.
memo toolchain checkprints OpenSysML warnings without failing on them; SysIDE warnings still fail it. - Screen captures. The dev server serves captures kept under
model/catalog/artifacts/assets/. An authored id is written as@MemoIdentity { :>> providedId }, and a create can name the part it belongs inside, so a region is declared inside its screen. - Constraints and quantities. A model's own constraints are evaluated (
MC-001); a quantity is read as a number from the library's unit source and keeps its units and its rational point. - Export. The Word export is a real
.docxwith the diagram pictures embedded, and the HTML export carries them too. - Build. The repository's own scripts run as Node, so they work on macOS, Linux and Windows.
0.16.0¶
- SysIDE 1.0.
compiler: sysideworks with SysIDE 1.0.0 as well as 0.10.x. Stage 1 reads both Python APIs (1.0 renameduser_docsandstdlib_docsand droppedDiagnostic.full_message), and the validator's defaultdiagnosescope isprojecton 1.0, because 1.0'sallalso fails SysIDE's own bundled standard library. An explicittoolchain.syside.diagnosestill wins. With 1.0, a diagnostic from stage 1 has no source snippet. - Finding SysIDE's Python. The interpreter that
uv tool install sysidecreates is now one of the places MEMO looks. - Docs. New pages: Install and Configure SysIDE, Install and Configure OpenSysML.
0.15.3¶
- Ids. A usage's id is its definition's id plus a number of its own, and every element carries
displayIdandidFamily; ids rebase renumbers usages, and opening a project under a new version migrates its ids. - Matrix views. Derive, declare, update and size traceability and DSM matrices, scoped to a system, with named groups in DSM views.
- User preferences. The experimental features a person switched on, and
packageFolders, are kept per person (the latter only when off).
0.15.2¶
- A display id's family belongs to the ontology. A project definition is registered as a kind, so an element typed by one used to mint a family from the first word of the definition's own name (
HospitalEpRecordingSystemExternalgave HSP). The family is now the ontology kind the element descends from. A definition that declares@MemoKind { :>> idPrefix = "…"; }(ontology 0.15.1) extends the ontology with a family of its own, and so does what is typed by it. Elements that were in the old families get new ids in the new ones, so review thememo.identity.yamldiff aftermemo validate.
0.15.0 (experimental release)¶
This release adds support for the OpenSysML compiler alongside SysIDE. The OpenSysML path is new and has had less use. The next version will be more stable.
Breaking¶
memoandmemo-architectare split.memocompiles, validates, packs and checks the toolchain; everything else, includinginit, ismemo-architect. A retired command exits with an error naming its replacement.memo packageis replaced bymemo pack(a SysAnd KPAR) andmemo-architect import kpar.- One verb to create a thing.
memo-architect new package|requirement|rule|kind|pluginreplacescreate-package,req new,rules new,ontology add-kindandplugin create; the flags are unchanged exceptreq new --template, which isnew requirement --pattern.memo-architect sysand publish(a dry run) ismemo publish. Each old name fails naming its replacement for one release. - The 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. - One project skeleton; no
--template.memo-architect initcopies the one skeleton the ontology's manifest names (init.template), and--example <id>starts from a copy of an example.--templateand the template list ininit --listare gone. - A methodology's selection is its package's public imports. The resolver reads which imports are public from the stage 1 handoff and selects the public-import closure of the packages declaring the methodology chain, plus what the binding's package publicly imports; the ontology's
includedLayer,includedModuleandincludedExtensionare no longer read. Theunavailable-module,unavailable-layerandmissing-extensiondiagnostics are gone (a misspelled import fails stage 1 instead), andshared-methodology-packageis new. For library callers:resolveEffectiveMethodologytakes the package → public-imports map (NativeProjectResolution.publicImports) in place of the available-package set;EffectiveMethodology.selectedPackagesandEffectiveScope.packagesreplace the layer and module lists;isKindInScopeandfilterKindsInScopeare removed. - Rules read the new trace. The loader reads
#EnforcesClausedependencies. Ontology 0.13.x and earlier, which useref enforces, no longer show clause traces.
Added¶
memo validate --rules --rules-obligation <required|recommended|bestPractice>;new rule --obligationand--enforceswrite the new forms. A new-rule request from Architect may carry anobligation.- 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.
memo-architect convertalso writes thememo.package.yamla converted project needs to load, and its warning names the methodology the oldmemo.config.yamlpinned. A new guide, Convert an Old Project, documents what it changes and what it leaves to you.-
memo packbuilds a SysAnd KPAR from the declared sources only, not from examples or the ontology. A package's.project.jsonlists the packages its sources import asurn:kpar:<package>usages with a^versionconstraint (an extension lists the ontology, and any other extension it imports).memo-architect sysand publish(a dry run) stages exactly whatmemo packstages, so it reports the real version and the same file set; before, it reported every version as 0.0.0. -
memo pruneremoves the cached pinned worktrees (.memo/pinned/) and assemblies (.memo/assembled/) not used lately:--keep <n>(default 5 of each) and--dry-run. memo.lock.yamlrecords the dependencies a build used: the range, the version found and a checksum of the package.memo lockwrites the section;memo validate,memo devandmemo compile(including--at, against that commit's own lock) refuse a build that resolves another version, a changed package or a dependency the lock never saw. A lock without the section is not checked for dependencies.memo-architect ids rebaserenumbers two sibling branches' duplicate short ids, tells an authoredprovidedIdthe branch added from the target's by a diff, and follows a mention of a renumbered id in a new file that declares the element.
Fixed¶
memo --versionreports the installed version (it printed 0.6.7).- A view's display statements are written beside its other
attribute :>>statements, not at the top of the body. allocate,satisfyandverifythrough a usage typed by a definition (allocate fn to pump.motor) end on the nested part the definition owns, not onpump. Connector ends are unchanged.- Each dev server takes its own HMR port. A second server found 24678 taken, logged a port error, and its page kept failing to connect.