Syside 0.8.5

Released on March 1st, 2026.

This version’s Python API documentation.

This release brings substantial new capabilities to both Syside Modeler and Syside Automator, a range of quality-of-life improvements driven directly by feedback from enterprise users, and a considerable number of bug fixes reported by our community.

Read the announcement blogpost.

Modeler

:rocket: Features

  • Tom Sawyer SysML v2 Viewer updated to v1.3
    • Added support for sequence diagrams
    • Added support for use case diagrams
    • Added edge crossing visualisation
    • Diagrams are now rendered in color
  • SysML v2 views support — Generate diagrams scoped to specific views, including models split across multiple .sysml files. Documentation
  • Visualise selected namespaces — Times of revisualising the whole file even if you care about one specific element in it are behind. Documentation
  • Visualise in multiple tabs — Added support for visualising views and elements from a single .sysml file in separate tabs
  • Generated diagrams through Modeler CLI - The CLI has been expanded to provide view and element diagram generation in CI/CD or other headless environments. Documentation
  • Python no longer required — The Python runtime is now bundled directly into Modeler, simplifying installation
  • Add rule and rule list subcommands to the CLI for exporting validation rules available in Syside
  • Common updates with Syside Editor, see section below.

:construction: Known issues

  • After revisualising the same file, view, or element, the visualisation is not automatically refreshed.
    • Workaround: Click anywhere on the visualisation window.
  • Tom Sawyer SysML v2 Viewer hangs indefinitely when visualising models with variant part in them.
  • A Export and Print button appears on Tom Sawyer SysML v2 Viewer top tool panel that does not do anything.
    • Workaround: For saving the diagram as image, use the Save as Image button as before.

Modeler & Editor

:rocket: Features

  • lsp: Add diagnostic invalidation to automatically clear global namespace distinguishability diagnostics
  • lsp: Add links to diagnostic rule codes
  • Add Syside icons to .kerml and .sysml files to make them easier to distinguish among other files

:bug: Bug Fixes

  • lsp: Increase open/close debounce timer to catch document moves more consistently
  • lsp: Fix that exclude patterns were not applied to include paths
  • lsp: Automatically remove excluded project tier documents from the workspace on close, and ignore their creation events
  • lsp: Fix that some diagnostics could be ignored during initialize phase

:high_voltage: Performance

  • lsp: Decouple edited document analysis from dependent documents
  • lsp: Switch to a single worker thread for handling LSP methods to reduce latency

Automator

:rocket: Features

  • python: Add Compiler.evaluate_filter to evaluate filter expressions on the target metadata. Example
  • python: Allow evaluation of user-defined calculations. Example
  • python: Expand support for evaluable SysMLv2 functions
  • python: Add standard enums used by reflection to Stdlib
  • python: Add Sema.resolve overload that accepts a sequence of locked documents
  • python: Add attach_comments option to include comments (notes) when loading model
  • python: Add precompute_element_ids to bulk generate element IDs more efficiently

:bug: Bug Fixes

  • python: Fix incompatible function arguments error on Sema.resolve (Forum post: 301)
  • python: Fix Expose.STD to include NamespaceExpose

:gear: Docs Tasks

  • python: Update Compiler docs regarding reflection and user-function evaluation
  • python: Add at least basic documentation to most previously undocumented symbols

All Syside Tools

:rocket: Features

  • interpreter: Evaluate InvocationExpressions to standard operator functions as operator expressions
  • interpreter: Enable basic evaluation of InvocationExpressions that invoke user-defined callables with supported result/return expressions
  • interpreter: Implement metamodel reflection
  • interepreter: Simplify builtin standard library function lookup and include all overloads
  • config: Add lint table, with standard-library-package configuration
  • interpreter: Redirect array# invocations to index operator
  • interpreter: Implement complex (floating point only), allTrue, anyTrue, product1, and sum0 library functions
  • interpreter: Implement various remaining scalar functions including trig functions
  • interpreter: Implement missing SequenceFunctions
  • interpreter: Reduce UnitBoundedReal constructor to input argument value after error checking
  • interpreter: Support optional arguments to builtin functions
  • interpreter: Add support for named arguments to builtin functions
  • interpreter: Implement missing scalar and sequence functions from the Kernel Function Library
  • interpreter: Add builtin pi constant
  • model: Implement path resolution for elements without qualified_names
  • validation: Add lint.multiplicity-range-bound-result-types option to check bounds against Natural (non-standard)

:bug: Bug Fixes

  • interpreter: Use instantiated_type to find the InvocationExpression function
  • model,sema: Implicitly specialize feature value feature results through Specialization to not interfere with some validations, make an exception for implicit Specializations in Feature::types
  • interpreter: Fix that equality did not check for equality across compatible types, e.g. int and double
  • interpreter: Fix handling of seq2 sequences in includes and excludes builtin functions
  • interpreter: Preserve infinities in range operators instead of replacing with max i64 value
  • interpreter: Handle allocation errors gracefully on concatenation of infinite or extremely large ranges
  • interpreter: Fix type errors on using integers in builtin functions that expect floating point values
  • interpreter: Print positional argument 1-based index if the type does not match what the builtin function expects
  • model: Fix that recursive expose did not recurse past direct members
  • model: Fix that lazy attributes could return the next element when using .at
  • model: Fix that erased elements retained their attributes
  • printer: Fix that references to erased elements would be printed, throw an error instead
  • printer: Fix that actor, subject, stakeholder, and objective inserted a space betweek keyword and ;
  • validation: Fix that feature chains would incorrectly trigger trigger-invocation-expression-at-argument
  • validation: Fix metadata-feature-annotated-element never trigerring
  • model: Fix view_rendering to return referenced rendering if one exists instead of always returning the owned rendering
  • sema: Fix that importing inherited members would fail with reference-error

:high_voltage: Performance

  • serde: Precompute element IDs to avoid trigerring costly lazy generation
3 Likes