Skip to content

Nightly snapshot 2026-09-20 (nightly-20260920-b8dd0e0c8)

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Sep 08:47
b8dd0e0

Development snapshot of develop, not a release. Built 2026-09-20 from b8dd0e0, 1175 commits after v0.8.1 (compare), by this workflow run. Every binary reports nightly-20260920-b8dd0e0c8.

The snapshot is replaced each night and is never the latest release; Homebrew, PyPI, npm and the Windows installer follow the stable line only. The snapshot page explains what it is, how to verify it and what to expect from it; the install guide covers the stable releases.

opensysml-sysml.vsix is the VS Code extension built from the same commit: code --install-extension opensysml-sysml.vsix, with a snapshot's sysml-lsp on your PATH or named by opensysml.server.path.

Verify a download against the signed manifest:

sha256sum -c --ignore-missing SHA256SUMS.txt
cosign verify-blob SHA256SUMS.txt --bundle SHA256SUMS.txt.bundle \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate-identity https://github.com/Open-MBEE/OpenSysML/.github/workflows/nightly.yml@refs/heads/develop

Unreleased changes in this snapshot

One line per entry; the full text is under changes/unreleased/ and CHANGELOG.md at this commit.

Added

  • The analysis libraries' conformance is measured, per package, by a runtime test.
  • A design note on surface parity
  • A persistent session in the public Go API.
  • Diagram layout is written into the document that declares what holds it, across the workspace.
  • RelatedElements traverses requirement derivation and refinement.
  • The VS Code diagram is open by default.
  • The VS Code diagram moves a declaration when a node is dropped on another with Shift held.
  • The VS Code diagram panel opens a document that declares several views intelligently, and can show several of them at once.
  • The VS Code diagram panel draws in the pilot visualizer's style, and in colour, on request.
  • A due do step against the dispatch due at the same instant is a recorded choice point.
  • Document queries read the objects a session holds.
  • Document queries report which constraints and requirements hold.
  • An exploration runs a behavior on an object nested inside an assembly, named by a path from a declaration.
  • -instantiate gives its object to every explored run.
  • A service request names the performer of an action or state machine.
  • The fUML test models are read and every activity is classified before any is translated.
  • The fUML reference implementation's activity tests are provisioned as an oracle for the action executor.
  • The fUML test activities referee the action executor.
  • A document query over gRPC binds an object the service holds.
  • ApplyEdits edits a model of several documents as one atomic batch.
  • The Java client wraps every RPC the service offers.
  • A design for scaling to very large models
  • Documents typeset LaTeX mathematics, inline and displayed.
  • The language server runs the behavior a diagram draws.
  • The Windows installer now runs a setup wizard.
  • A nightly snapshot of develop is published as the prerelease nightly.
  • The nightly snapshot ships the VS Code extension.
  • sysml-lsp is declared to OpenCode.
  • Document queries express requirement coverage gaps.
  • The order in which a state's regions are entered, exited and fired across is a recorded choice point.
  • A design note on the order of orthogonal regions
  • A satellite-network stress workload and its scaling record.
  • The architecture self-model now shows the runtime from the inside.
  • A fifth runtime-showcase model: a spacecraft downlink.
  • A document query reads the state a session's objects are in and the trace their run recorded.
  • The trace is a typed record the printer writes from.
  • A manual page tells the query kinds apart.
  • A continuous model runs by time-stepping.
  • A model states its own odds.
  • Monte Carlo runs.
  • terminate runs in an action.
  • terminate ends an occurrence, a state's behavior or the state machine.
  • Four graded requirements-traceability examples in the manual.
  • A wide table in a PDF lands on landscape pages.
  • RelatedColumn(name, relationshipKind, direction, maxDepth, aggregate) projects the elements a relationship reaches from each row.
  • A satisfaction asserted by an object's type and found again in a validation scope is reported once.
  • The SysML v1 migration writes behaviors that run.
  • A send addressed to a parameter, pin or local of the sending action reaches the object it holds.
  • perform action x ::> part.action; and exit part.action; run on the part.
  • A run resolves its random draws under a policy.
  • A «Probability» that names a property is a feature reference.
  • Simulation run configurations migrate.
  • The tool's results come across, and a harness compares them.
  • An object is validated as a whole.
  • A worked example of verdict queries.

Changed

  • check no longer reports exhaustive where its moves leave a run out.
  • The Python, Node, Java and Rust clients moved from clients/ to client/, beside the Go client.
  • A completion enabled by a region's entry stays a run-to-completion step of its own; the design that would have drawn its firing inside the entry front is closed without code.
  • Diagnostic and Severity moved from internal/core/passes to the leaf package internal/core/diag.
  • The PDF document backend sits beside the renderer it drives.
  • The refusal of a session object under exploration says what to name instead.
  • A check's outcome carries the attributes the performing objects hold.
  • An action executed on an object performing it runs that one performance.
  • Conversions are driven from internal/core/convert, not from the RDF mapping.
  • The conformance mode lives with the diagnostics it grades.
  • Atomic file replacement lives with the other file-level primitives.
  • Normative library ids are minted in identity itself.
  • A symbol's source origin is read off the symbol.
  • Quick-fix edits live with the diagnostics that carry them.
  • Rename conflict checking lives with the rename edit.
  • The fUML referee driver source lives under scripts/fuml-driver/io/opensysml/fuml/.
  • The test-suite figures are counted from the tree when the documentation site is built, never committed.
  • The RDF exporter no longer carries the engine model forms.
  • sysml -help and the manual page list the options by task.
  • A mistyped flag prints the error, the synopsis and Run 'sysml -help' for the options.
  • %help groups every REPL command under a heading and wraps its description.
  • The simple name a qualified name ends in is computed in one place.
  • Moved the validation packages to internal/check.
  • Moved the document packages to internal/doc.
  • Moved the execution packages to internal/exec.
  • Moved the frontend packages to internal/frontend.
  • Moved the semantic IR packages to internal/ir.
  • Moved the semantic packages to internal/semantic.
  • Moved the foundation and syntax packages to internal/syntax.
  • Moved the translation packages to internal/translate.
  • Moved the workspace packages to internal/workspace.
  • The notation-text helpers moved from internal/core/lexer to internal/core/source.
  • The migration and referee XMI readers now share one parser.
  • The conversion between runtime values and the API's protobuf messages is its own package, internal/protoconv.
  • Every failing PSSM test is attributed.
  • The PSSM referee classifies a guard whose behavior acts on the model as having no translation.
  • The Python client is released with the core, from the same v* tag and at the same version.
  • Qualified-name rendering and declaration-body lookup each have one home.
  • A state's inline do body is interrupted between its statements.
  • Runtime and gRPC robustness cases are registered per feature, not in one shared function.
  • The runtime no longer imports the parser.
  • The runtime selects call overloads through the semantic model, with the argument typing its caller installed.
  • Sorted map keys come from the standard library.
  • The declared errata overlay now covers the bundled standard library.
  • The built binaries are about a quarter smaller.
  • A symbol's declaring element is read through one method.
  • Test-support packages live under tests/.
  • The OMG corpus gates and the RDF round-trip ratchet move to tests/corpus.
  • The gRPC conformance suite and the external-package tests move under tests/.
  • The parser's black-box suites move to tests/parser.
  • The repository root gains a tests/ tree for black-box test code and fixtures.
  • The counting gates and the remaining unreleased programs live in the tools module.
  • The development tools are a nested Go module, tools/.
  • The errata overlay is split from the registry.
  • The referees live in the tools module.
  • PDF headings and captions stay with what they introduce.
  • A workspace copy of a library file rooted at the library's packages is the library, as it is for the RDF mapping.
  • A file opened under a bundled library's own name no longer removes that library from the workspace when it is closed.
  • The XMI element walker the PSSM referee reads its suite with is now its own package, internal/xmi

Fixed

  • Several completion transitions out of one state are one choice.
  • A diagram panel left open across an extension update restored blank.
  • explore varies the first run's choice points earliest first.
  • A fork may enter orthogonal regions that have no initial state.
  • A transition into a history pseudostate restores the configuration it is leaving.
  • The PSSM referee's translation no longer folds an initial transition's effect into the entry action of the state or region it starts.
  • A join runs the effect of every transition into it.
  • A join's segments fire with their own trigger's arguments, and a refused replay undoes them all.
  • A junction with several enabled outgoing branches draws one of them as a choice point.
  • An edit no longer re-derives every wildcard import in the workspace.
  • Completion keeps its name table across edits.
  • Semantic tokens index the text they were computed from.
  • SysML v1 migration no longer copies opaque expressions whose cast multiplicity bounds or body-local connection/flow endpoints name members the model lacks, and treats declared connector-end names as in scope within their connector bodies.
  • A body inside a nested definition no longer reaches the enclosing definition's features by their bare names.
  • The nightly snapshot signs again.
  • The nightly snapshot's release notes no longer break mid-sentence: GitHub renders a release body with hard line breaks, so each paragraph is written as one line.
  • The nightly snapshot no longer falls back past the commit it was last built from when develop's head is red: the walk for the newest green commit ends at the published snapshot, so a night with nothing newer green leaves the previous snapshot standing instead of publishing an older commit — or failing on one that predates scripts/build-release-artifacts.sh, which is now skipped.
  • The pilot corpus downloader refuses to report success over an empty corpus.
  • The PSSM referee's translation carries the values a test's constructor writes.
  • A redefinition is masked along an alias path too.
  • A segment leaving a junction or choice declared inside a composite state runs its effect after that state's entry.
  • The npm platform packages and the nightly pipeline build statically linked binaries too.
  • A document binding may name a nested usage in dot notation.
  • A verification case is matched to a requirement by the declaration it names.
  • The pandoc PDF engine no longer receives a document-css variable.
  • A wide table in a PDF document stays within the page.
  • A transition from a substate into the composite state enclosing it no longer restarts that state's default substate: the composite is already active, so it is not re-entered, and the body the substate left completes — a composite with no other region completes and its completion transition fires, a parallel owner waits for its other regions.
  • A parallel region stood for by a stateless state needs no initial.
  • Every witness check writes replays.
  • XMI metadata attributes on stereotype applications are no longer emitted as stereotype tags.

Performance

  • A workspace keeps its semantic model between edits and invalidates it per document.
  • Resolving a name through a scope no longer rescans every anonymous member of that scope for implicit parameters.
  • Checking n satisfy assertions no longer walks the model n times for verification cases.