Changelog

This is SysIDE Pro software version changelog. Below is a table containing information about which SysIDE tools support which SysML v2 version:

SysIDE version overview

SysIDE Tool

Current version

SysML v2 version

Editor

0.9.0

2024-12

Automator

0.6.1

2024-12

Modeler

0.6.1

2024-12

Note

Note SysIDE Pro is versioned using the Semantic Versioning 2.0.0.

SysIDE Pro 0.6.1

Modeler

Features
  • (IDE) Introduce a beta version of Modeler native IDE experience that replaces SysIDE Editor. This experimental feature can be enabled by setting “Enable the LSP server” to true.

Bugfixes
  • (visualization) Fixed regression in visualizing nested ports

Automator

Features
  • (compiler) Add support for constructor expressions to syside.Compiler

  • (parser) Improve error recovery by allowing some extra unexpected tokens

  • (crash-handler) Improve error reporting for crashes

Bugfixes
  • (sema) Diagnose invalid owned cross-features when there is no opposite end feature

  • (kerml) Disallow parsing of owned multiplicities in connector ends

  • (core) Fix a memory error, which was triggered when iterating over a collection with removed elements

  • (printer) Do not print implicit namespace children

  • (model) Fix crash when resetting ConjugatedPortTyping target reference

  • (sema) Fix name resolution inconsistency around redefinitions due to redefinitions being recorded too late, allowing some names to be resolved when they should not have been

  • (sema) Fix spurious name resolution errors when specializing types through aliases

  • (parser) Disallow new-line and bare backslash characters in strings and unrestricted names

  • (model) Fix Namespace::member[ship]s to include inherited members if called on Type

  • (compiler) Fix metadata annotatedElement to return metaclasses of the annotated elements, rather than the elements directly

  • (sema) Evaluate SemanticMetadata in the scope of the metadata usage to support expressions conditional on annotatedElement

SysIDE Pro 0.6.0

Modeler

Core
  • (licensing) Replace EAP accounts with SysIDE license keys

  • (visualization) Updated SysMLv2 viewer to version 1.1

Bug fixes
  • (visualization) Fix a crash when trying to visualize large files

  • (visualization) Detect when Tom Sawyer visualization server stops and offer to restart it

  • (visualization) Fix import edge direction

  • (visualization) Fix visualization of subsetting

Automator

Features
  • (python) Integrate license checker

  • (interpreter) Add evaluate_feature method to evaluate possibly redefined features without searching for feature value expressions

Bugfixes
  • (python,osx) Fix generated build version to be a string on versions <11.0

  • (fs) Fixed that decode_path did not handle relative file URLs

  • (pipeline) Fixed that validation tier constraint was not ignoring higher tiers

  • (sema) Fix crash when resetting Subclassification reference with an invalid placeholder type

  • (ide) Fix crash when attempting to highlight error nodes

  • (textdocument) Fixed that position_at always returned UTF-8 encoded characters if offset was out of bounds

  • (fs) URL encode : in absolute Windows paths to %3a

SysIDE Pro 0.5.4

Modeler

Platform
  • (windows) Use SysIDE Automator v0.5.4, which has no more dependency on C++ Redistributable

  • (osx) Use SysIDE Automator v0.5.4, which supports lower MacOS versions

Automator

Features
  • (textdocuments) Add move method

  • (textdocuments) Return the TextDocument that was closed

  • (version) Add build timestamp

  • (textdocuments) Add find_or_open method

  • (posix,crash-handler) Print loaded dynamic modules on crash to be able to resolve absolute function addresses from stripped binaries

  • (windows,crash-handler) Print loaded modules on crash similarly to Posix handlers

  • (python) Add sema_reset functions to reset element and document states to unresolved

  • (python) Add invalidated argument to Pipeline.schedule to build those documents by first resetting sema

Bugfixes
  • (python) Fix formatting of platform errors

  • (python) Fix typos in _platform.py

  • (textdocument) Sanitize text edit range before computing tree edit

  • (python,linux) Check platform.platform() for glibc version first, adjust warnings stacklevel

  • (model) Add missing standard Relationship variant types

  • (serde) Fix that non-Relationship ownedRelatedElements were treated as owned children

  • (assertions) Do not use colours if stderr is not an interactive terminal

  • (python) Fix version check to return True newer major versions

Documentation
  • (python) Fix rendering of inline literals followed by text

  • (python) Removed mentions of C++ and Rust

Platform
  • (windows) Link against C++ runtime statically, no more dependency on C++ Redist

  • (osx) Link against upstream libc++ statically, lower deployment target

SysIDE Pro 0.5.3

Modeler

Features
  • (visualization) Add a setting (interactiveZoomReversedDirection) to reverse the direction of the interactive zoom (activated by the scroll wheel when the mouse pointer is over the visualization)

  • (ui) Clarify the names and descriptions of commands and settings

Bugfixes
  • (visualization) Fix not visualizing files inside folders whose names end with sysml or kerml

  • (visualization) Support visualization of larger files

  • (visualization) Report an error when the file is too large to be visualized instead of crashing

  • (startup) If operating system rejects the certificate of the Tom Sawyer license server, use custom validation

  • (startup) If cannot resolve the IP address of the Tom Sawyer license server using the default DNS, use Google’s public DNS instead

  • (startup) If cannot reach the Tom Sawyer license server via HTTPS, try reaching it via HTTP

Automator

Features
  • (document) Add version that tracks source and sema versions

  • (executor) Add num_workers to query the number of worker threads

  • (ioschedule) Do not load sources from duplicate URLs

  • (document) Add method to change document tier after construction

  • (schedule) Add option to disable validation on documents from external libraries

  • (ioschedule) [breaking] Add tier option when adding files and propagate it through callback

  • (python) Add syside.preview module with proposal for an upcoming higher-level Model API

Bugfixes
  • (fs) Normalize paths in make_file_url, use file: instead of file:// for relative paths

  • (fs) Fix crash when attempting to read empty mmapped files

  • (serde) Constrain all non-derived duplicate attribute names to only be used with certain element types

Documentation
  • (python) Small tweak to the documentation of syside.json.loads

SysIDE Pro 0.5.2

Modeler

Bugfixes
  • (startup) Fixed sometimes non-deterministically failing Python version check

  • (startup) Recognize when SysIDE Automator fails to start due to corrupted installation of Visual C++ Redistributable and show an actionable error message

  • (startup) Fixed failing to load Tom Sawyer visualization when running on GitHub Codespaces in a browser

Automator

Features
  • (python) Add ide module, with semantic highlighting functions

  • (validation) Add warning for shadowing in the global namespace

Bugfixes
  • (textdocument) offset_at should not include end-of-line characters

  • (printer) Fix PortUsage not printing its multiplicity part

  • (printer) Disallow printing any modifiers except abstract on MetadataDefinition

  • (printer) Fix ReferenceUsage not printing ref keyword when usage declaration is empty

  • (model) Recursive imports no longer recurse into unowned members and ignore implicit specializations

  • Always construct executors with at least 1 worker

  • (sema) Fixed that found unresolved memberships by reference were not queued for resolution

Performance
  • (sema) Do not reset name resolution caches when searching another scope for the same identifier

  • (sema) Cache all visited namespaces during name resolution, improves sema performance by ~40% on SysML release examples

Documentation
  • Added semantic highlighting to SysML and KerML code blocks

SysIDE Pro 0.5.1

Modeler

Bugfixes
  • (Tom Sawyer Visualization) Fixed the bug Save as Image dialog always producing too low resolution images regardless of the selected option in the Resolution dropdown

  • (startup) Automatically use operating system’s proxy settings for Tom Sawyer visualization

  • (startup) Fixed failing to load Tom Sawyer visualization when using remote VS Code via SSH

  • (startup) Recognize when Tom Sawyer server fails to connect to the license server due to blocking firewall rules and show an actionable error message

  • (startup) Recognize when Tom Sawyer server fails to connect to the Tom Sawyer license server due to corrupted Java certificate store and show an actionable error message

  • (startup) Recognize when SysIDE Automator fails to start due to missing or outdated Visual C++ Redistributable and show an actionable error message

  • (startup) Lower minimal supported VS Code version to 1.90

Automator

This release had changes only in the Modeler.

SysIDE Pro 0.5.0

Modeler

Introducing SysIDE Modeler - a Visual Studio Code extension to enhance your SysML v2 modeling experience even more!

Modeler introduces code-to-diagram view, allowing you to generate and view your SysML v2 models as diagrams. Code-to-diagram view is powered by our partners Tom Sawyer Software.

To get started with SysIDE Modeler, please refer to the Modeler section

Automator

Platform Support
  • Add support for Python 3.13 and newer

  • Add support for MacOS with Intel processors (x86-64 architecture)

Features
  • [breaking] Update to 2024-12 specification version

    • Changelog for the 2024-12 release can be found here (SysML v2 release) and here (Pilot Implementation)

    • Implicit owned cross feature subsettings may not always be fully resolved according to the specification. This should not affect validation or name resolution.

  • [breaking] More uniform accessors for editing the model

  • Add clear to relationship children accessor

  • Add replace_at method to DependencyEnds

  • Always serialize name and short_name if they are different to respective declared names

  • Add option to ignore discard subtrees of implicit relationships when printing sexp

  • (python) Add sexp overload with keyword arguments

  • (serde) Change JSON to include cross-reference URIs in its output by default

  • (python) [breaking] Add JSON string deserialization, unify some (de)serialization structures

  • (diagnostics) Print the last horizontal glyph as space

Bugfixes
  • (python) Bind AstNode.__hash__

  • (windows) Replace broken <cctype> functions which treated some unrestricted identifiers as regular identifiers

  • Dependency multiple clients and suppliers were resolved in reverse order

  • OwningMembership now always returns empty owned_relationships

  • Resolved Annotation target references not updating owning AnnotatingElement about container

  • (python) Add constructor for SexpOptions

  • Parser accepting ; as an empty ReferenceUsage

  • (serde) Properly escape unicode in JSON string values

  • (python) Copy SysML README and LICENSE to build dir

  • (sema) Implicitly redefine all inherited end features, not just those from associations and connectors

  • Nary programmatic connectors were printed as binary

Documentation
  • Restructure documentation according to the new SysIDE Product structure

  • (python) Expand on some API design choices

Styling
  • (python) Fix ruff format error

SysIDE Pro 0.4.2

Features
  • Improved parser errors, keywords are no longer accepted as identifiers

  • Add option to export cross-reference document URIs in JSON

  • (python) Add tuples and aliases of types matching standard types as STD and Std respectively

Bugfixes
  • (windows) Fix invalid utf8 error with some UTF8 paths during conversion to Url

  • (python) Fix mypy/pyright issues in native modules

  • Always cache referent as FeatureReferentExpression result instead of referent result when it is an Expression

  • (python,windows) Before importing native Python module, check more dependencies, reduce the number of false-positive warnings

SysIDE Pro 0.4.1

Features
  • (python) Add platform checks before loading native module

Bugfixes
  • Check type guard expressions as returning booleans

  • Percent encode Unicode characters converting path to URL in make_file_url

  • (printer) Replace programmatic ConjugatedPortTyping references with original port definitions

SysIDE Pro 0.4.0

Features
  • Diagnose inherited names ambiguous with owned names

  • [breaking] Cache more standard elements needed for type inference, replace scalar_quantity_value with Stdlib.tensor_quantity_value

  • [breaking] Tag expression result type, infer guarded type in select expressions

  • Extend standard library cache with the remaining scalar value types

  • (python) Make printer optional in pprint

  • Prettier Element stringification

  • Treat some standard library functions as operators and generic functions for type inference

  • Add type checking for feature values

  • Update to 2024-11 release, adding TerminateActionUsage

Bugfixes
  • Expression result type inference fixes

  • Skip owning expression trees when resolving references in body expressions

  • Expression.result considers results inherited by its function, add Function.any_result that considers inheritance

  • Crash on resolving some empty references

  • Continued usage typings not accepting conjugated port typings

  • Constructor expressions not redefining type features

Documentation
  • (python) Change docstrings to reStructuredText

  • (python) Inline code fixes

  • (python) Fix stubbed overloads not rendered in API reference

  • (python) Fix intermediate names shown in API reference

  • (python) Fix imported symbols from hidden submodules not rendered in API reference

  • (python) Organize symbols in syside package into sections

SysIDE Pro 0.3.2

Bugfixes

SysIDE Pro 0.3.1

Features
  • Improve annotating element body and multi-line note formatting

  • (python) Add CLI format command

Bugfixes
  • Differentiate default interface ends from explicit end port usages

  • Fix printing multiple dependency clients and suppliers

  • Print inner null expression notes inside brackets

  • Fix assume and require not treated as keywords in SysML

  • Do not print parameter direction

  • Fix usage children joined too early

  • Do not break fitting item features

  • Break binding connectors after =

  • Treat implies expressions as other similar logical expressions for flattening and parentheses

  • Redefine related features from all direct supertypes rather than the first

  • Don’t add an implicit specialization if a type already conforms to the base type

  • Implicit ItemFlow and FlowConnectionUsage supertypes, and supertypes based on owned feature typings

  • Building AST nodes out of order

  • Construct an empty target in assignments to correctly redefine implicitly inherited parameters

  • Implicitly redefine all inherited return parameters

  • Ignore non-public members for document exports

  • Implicitly redefine all inherited objective members

  • Check every general type of owned specializations when resolving redefined feature reference

  • Implicitly specialized types not always fully resolved before redefining related features

  • Disable abstract non-parameter behavior feature redefinition since it is not in the spec

  • Item flow ends not assigned implicit names

Documentation
  • (python) Update documentation of the JSON API

Performance
  • Improve heritage walk

SysIDE Pro 0.3.0

This release adds JSON serialization for SysML v2 models, as well as a command line interface. SysIDE Pro now also supports SysML v2 2024-09 version.

Features
  • Update standard library to 2024-09 from 2024-05 release

    • Changelog for the 2024-09 release can be found here

    • Changelog for the 2024-07 release can be found here

  • Add JSON string serialization

  • Implement standard element ids to match pilot implementation

  • Add qualified name type with stringification

  • Add cutoff and attach_comments options to pipeline schedule

  • Add ParameterMembership::parameter_direction operation

  • Add missing standard attributes

  • Implement is_model_level_evaluable evaluation during semantic analysis

  • (python) Add basic json submodule

  • (python) Add CLI entrypoint to syside Python module

  • (python) Add Environment for model loading

  • (python) Return uuid.UUID from Element.element_id, make it writable

  • (python) Use cached standard library

  • (python) Use default executor instead of constructing one every time

  • (python) Add filename and severity based accessors to Diagnostics

  • (python) Add Document creation overloads with named arguments

Bugfixes
  • Ensure that implicit AcceptActionUsage payload parameter direction is inout

  • Expression cached result types were not reference counted, and all_nodes were returning Dependencies for all types

  • Some expression argument notes were lost during formatting

  • (python) Fix crash when returning null Document.text_document

  • (python) Fix crash when cloning StaticIndex

  • (python) Add missing optional typings from optional function arguments

Documentation
  • Add new “JSON Export” example

  • Expand “Extract documentation” and “Extract parts” examples to show how to use SysIDE’s new CLI interface

Platform support
  • (linux) Build and link against static libc++, lower glibc version requirements

  • (linux,osx) Do not reexport symbols from linked static libraries

SysIDE Pro 0.2.0

This release adds Python API for building & writing SysML v2 models.

Features
  • (python) Add string parsing for documents

  • (python) Add Python API for programmatically building and modifying models.

  • (python) [breaking] Construct new documents with mutexes so that thread-safety can be inferred

  • Improve error messages shown when *.sysml or *.kerml file fails to open.

  • Add option to disable validation

  • Add garbage collector for documents

  • Add support for generating textual notation from programmatically constructed abstract syntax.

Bugfixes
  • Ensure that caching is done after all corresponding model documents have been parsed irrespective of their actual language, e.g. KerML and SysML

  • Fix infinite loop on circular imports

  • Always print up-to-date reference segment identifiers

  • Fix empty single line notes matching text on next line

  • Make Element::owner follow standard, old owner is available as scoped_owner

  • FeatureReferenceExpression and TriggerInvocationExpression not forwarding evaluation to owned expressions

Documentation
  • Updated the design of documentation

  • Added new Examples Collection

  • Added installation update without virtual environment (“.venv”)

  • Added instructions on how to upgrade SysIDE after release

  • Added FAQ section

  • Added API Reference section

  • Added update section

Terms & Conditions
  • Added a section covering data usage

SysIDE Pro 0.1.0

Initial release