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.2 |
2024-12 |
Modeler |
0.6.2 |
2024-12 |
Note
Note SysIDE Pro is versioned using the Semantic Versioning 2.0.0.
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::surroundedByOccurrences
to not haveend
features 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::surroundedByOccurrences
to not haveend
features 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
cpptrace
to 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
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
(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]s
to include inherited members if called onType
(interpreter) 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 onannotatedElement
(ide) Highlight
metadata
conditionally 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_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 encodedcharacters
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 wasclosed
(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 toPipeline.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()
forglibc
version first, adjust warningsstacklevel
(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-levelModel
API
Bugfixes
(fs) Normalize paths in
make_file_url
, usefile:
instead offile://
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
onMetadataDefinition
(printer) Fix
ReferenceUsage
not printingref
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 accessorAdd
replace_at
method toDependencyEnds
Always serialize
name
andshort_name
if they are different to respective declared namesAdd 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 identifiersDependency
multiple clients and suppliers were resolved in reverse orderOwningMembership
now always returns emptyowned_relationships
Resolved
Annotation
target references not updating owningAnnotatingElement
about
container(python) Add constructor for
SexpOptions
Parser 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
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
andStd
respectively
Bugfixes
(windows) Fix
invalid utf8
error with some UTF8 paths during conversion toUrl
(python) Fix
mypy
/pyright
issues in native modulesAlways cache
referent
asFeatureReferentExpression
result instead ofreferent
result 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
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
withStdlib.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 inpprint
Prettier
Element
stringificationTreat 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
Changelog 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.result
considersresults
inherited by itsfunction
, addFunction.any_result
that 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
syside
package into sections
SysIDE Pro 0.3.2
Bugfixes
(python)
LazyIterator[TRelationship]
to iterate overRelationship
instead 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
assume
andrequire
not 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
implies
expressions 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
ItemFlow
andFlowConnectionUsage
supertypes, 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
cutoff
andattach_comments
options to pipeline scheduleAdd
ParameterMembership::parameter_direction
operationAdd 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
fromElement.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 toDiagnostics
(python) Add
Document
creation overloads with named arguments
Bugfixes
Ensure that implicit
AcceptActionUsage
payload parameter direction isinout
Expression
cached result types were not reference counted, andall_nodes
were returningDependencies
for 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
*.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, oldowner
is available asscoped_owner
FeatureReferenceExpression
andTriggerInvocationExpression
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