Changelog
This is SysIDE Pro software version changelog. Below is a table containing information about which SysIDE tools support which SysML v2 version:
SysIDE Tool |
Current version |
SysML v2 version |
|---|---|---|
Editor |
0.9.0 |
2024-12 |
Automator |
0.6.4 |
2024-12 |
Modeler |
0.7.0 |
2024-12 |
Note
Note SysIDE Pro is versioned using the Semantic Versioning 2.0.0.
SysIDE Pro 0.6.4
Modeler
This release includes only changes to the Automator.
Automator
Features
(diagnostics) Improve diagnostics for missing implicit supertypes
(model) Add option to print references in S-expressions
(crash-handler) Add instructions on crash reporting, repeat crash messages to
stderr
Bugfixes
(crash-handler) Only print the first crash trace when crash happens in multiple threads
(pipeline) Fix crash attempting to parse documents without sources, skip ast phase in such cases
(printer) Fix error when printing guarded transitions with implicitly constructed sources
(sema) Fix
TransitionUsageaccepterpayload sometimes used before being resolved resulting in unresolved references(sema) Fix that redefining some chained features triggered name distinguishability validation
(printer) Fix that transitions without explicit
sourcewere not indented after branching control nodes(validation) Fix
AssociationandConnectorrelated types validation triggering ifendFeatureswere inherited indirectly(sema) Fix reference error when referencing a
Featurewith an effective name that also owns the expression tree
SysIDE Pro 0.7.0
Modeler
Features
(IDE) The native IDE experience is now enabled by default
(IDE) SysIDE Modeler is now available on VS Code Marketplace
Bugfixes
(visualization) Fixed the background color of metadata elements from black to white
Automator
This release includes only changes to the Modeler.
SysIDE Pro 0.6.3
Modeler
This release includes only changes to the Automator.
Automator
Features
(python) Add missing methods for modifying all
Diagnosticmembers
Bugfixes
(sema) Fix potential crash when checking if invocation expressions are model-level evaluable
SysIDE Pro 0.6.2
Modeler
Warning
The changes below refer to the Modeler native IDE experience, which is still in beta
and disabled by default. To enable it, set the Syside: Enable LSP option to
true in the Modeler settings.
Features
(parser) Diagnose invalid escapes instead of erroring in the grammar
(printer) Print string literals as multiline strings while preserving explicit line break escapes
Bugfixes
(linker) Fix crash when linking references through error nodes on new CSTs
(stdlib) Fix
Occurrences::surroundedByOccurrencesto not haveendfeatures to match upstream(sema) Do not report additional internal errors due to unresolved references
(lsp) Fix crash in reference completion
Revert
Allow multiline string literals again
Automator
Features
(parser) Diagnose invalid escapes instead of erroring in the grammar
(printer) Print string literals as multiline strings while preserving explicit line break escapes
Bugfixes
(linker) Fix crash when linking references through error nodes on new CSTs
(stdlib) Fix
Occurrences::surroundedByOccurrencesto not haveendfeatures to match upstream(sema) Do not report additional internal errors due to unresolved references
Revert
Allow multiline string literals again
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
(validation) Diagnose invalid quantity operator expressions
(compiler) Add support for constructor expressions to
syside.Compiler(crash-handler) Switch to
cpptraceto generate better traces on crashes(parser) Improve error recovery by allowing some extra unexpected tokens
Bugfixes
(ide) Highlight variant features as enum members, variations - as enums
(ide) Fix highlighting of non-final reference segments
(core) Fix validation checking some unused nodes if a document was reparsed
(kerml) Disallow parsing of owned multiplicities in connector ends
(sema) Implicitly recursively resolve linked metaclasses if not importing by name
(sema) Diagnose invalid owned cross-features when there is no opposite end feature
(printer) Do not print implicit namespace children
(pipeline) Fix stage durations showing time since epoch if the stage was skipped
(model) Fix crash when resetting
ConjugatedPortTypingtarget 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
(pipeline) Fix documents not being deleted if they were also invalidated, change invalidation to highest wins instead of first
(grammar) Disallow new-line characters in strings and unrestricted names
(sema) Resolve elements and references in error subtrees
(model) Fix
Namespace::member[ship]sto include inherited members if called onType(interpreter) Fix metadata
annotatedElementto return metaclasses of the annotated elements, rather than the elements directly(sema) Evaluate
SemanticMetadatain the scope of the metadata usage to support expressions conditional onannotatedElement(ide) Highlight
metadataconditionally as a keyword or an operator rather than always the latter
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_featuremethod 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_pathdid not handle relative file URLs(pipeline) Fixed that validation tier constraint was not ignoring higher tiers
(sema) Fix crash when resetting
Subclassificationreference with an invalid placeholder type(ide) Fix crash when attempting to highlight error nodes
(textdocument) Fixed that
position_atalways returned UTF-8 encodedcharactersif 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
movemethod(textdocuments) Return the
TextDocumentthat wasclosed(version) Add build timestamp
(textdocuments) Add
find_or_openmethod(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_resetfunctions to reset element and document states to unresolved(python) Add
invalidatedargument toPipeline.scheduleto 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()forglibcversion first, adjust warningsstacklevel(model) Add missing standard
Relationshipvariant types(serde) Fix that non-
RelationshipownedRelatedElementswere treated as owned children(assertions) Do not use colours if
stderris not an interactive terminal(python) Fix version check to return
Truenewer 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
versionthat tracks source and sema versions(executor) Add
num_workersto 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
tieroption when adding files and propagate it through callback(python) Add
syside.previewmodule with proposal for an upcoming higher-levelModelAPI
Bugfixes
(fs) Normalize paths in
make_file_url, usefile:instead offile://for relative paths(fs) Fix crash when attempting to read empty
mmappedfiles(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
idemodule, with semantic highlighting functions(validation) Add warning for shadowing in the global namespace
Bugfixes
(textdocument)
offset_atshould not include end-of-line characters(printer) Fix
PortUsagenot printing its multiplicity part(printer) Disallow printing any modifiers except
abstractonMetadataDefinition(printer) Fix
ReferenceUsagenot printingrefkeyword 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
clearto relationship children accessorAdd
replace_atmethod toDependencyEndsAlways serialize
nameandshort_nameif they are different to respective declared namesAdd option to ignore discard subtrees of implicit relationships when printing sexp
(python) Add
sexpoverload 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 identifiersDependencymultiple clients and suppliers were resolved in reverse orderOwningMembershipnow always returns emptyowned_relationshipsResolved
Annotationtarget references not updating owningAnnotatingElementaboutcontainer(python) Add constructor for
SexpOptionsParser accepting
;as an emptyReferenceUsage(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
ruffformat 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
STDandStdrespectively
Bugfixes
(windows) Fix
invalid utf8error with some UTF8 paths during conversion toUrl(python) Fix
mypy/pyrightissues in native modulesAlways cache
referentasFeatureReferentExpressionresult instead ofreferentresult when it is anExpression(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
ConjugatedPortTypingreferences 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_valuewithStdlib.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
printeroptional inpprintPrettier
ElementstringificationTreat some standard library functions as operators and generic functions for type inference
Add type checking for feature values
Update to 2024-11 release, adding
TerminateActionUsageChangelog for the 2024-11 release can be found here (SysML v2 release) and here (Pilot Implementation)
Bugfixes
Expression result type inference fixes
Skip owning expression trees when resolving references in body expressions
Expression.resultconsidersresultsinherited by itsfunction, addFunction.any_resultthat considers inheritanceCrash 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
sysidepackage into sections
SysIDE Pro 0.3.2
Bugfixes
(python)
LazyIterator[TRelationship]to iterate overRelationshipinstead of their related elements.(python)
TextDocument.create_st->TextDocument.create_mt()multithreaded overload
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
assumeandrequirenot treated as keywords in SysMLDo not print parameter direction
Fix usage children joined too early
Do not break fitting item features
Break binding connectors after
=Treat
impliesexpressions as other similar logical expressions for flattening and parenthesesRedefine 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
ItemFlowandFlowConnectionUsagesupertypes, and supertypes based on owned feature typingsBuilding 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
Add JSON string serialization
Implement standard element ids to match pilot implementation
Add qualified name type with stringification
Add
cutoffandattach_commentsoptions to pipeline scheduleAdd
ParameterMembership::parameter_directionoperationAdd missing standard attributes
Implement
is_model_level_evaluableevaluation during semantic analysis(python) Add basic
jsonsubmodule(python) Add CLI entrypoint to
sysidePython module(python) Add
Environmentfor model loading(python) Return
uuid.UUIDfromElement.element_id, make it writable(python) Use cached standard library
(python) Use default executor instead of constructing one every time
(python) Add
filenameand severity based accessors toDiagnostics(python) Add
Documentcreation overloads with named arguments
Bugfixes
Ensure that implicit
AcceptActionUsagepayload parameter direction isinoutExpressioncached result types were not reference counted, andall_nodeswere returningDependenciesfor all typesSome 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
*.sysmlor*.kermlfile 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::ownerfollow standard, oldowneris available asscoped_ownerFeatureReferenceExpressionandTriggerInvocationExpressionnot 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