Release notes
2025.1.0 (work in progress)
Key highlights
-
New palette in diagrams: The complete redesign of this contextual palette brings:
-
draggable it.
-
"Search Tool" section allowing you to quickly search and found element/tool you want to use
-
quick access to the latest element/tool used.
-
all elements/tools are organized in sections by their name.
-
-
New command palette: With "CTRL + k" or on the top right side of SysON, a search command window will be displayed to help you to quickly process any tool command.
For the moment, only "search element" command is available. But this will help you to quickly found any element in your model |
-
New explorer view: Rework the structure of standard and user libraries in the Explorer view. The Explorer view now contains the following directories for libraries:
-
Libraries: top-level container for all the libraries used in the project
-
KerML: KerML standard libraries
-
SysML: SysML standard libraries
-
User Libraries: User-imported libraries
-
-
Breaking changes
No breaking changes.
Bug fixes
-
Fix textual export of
LibraryPackage
: the exported file now correctly containslibrary package <Package Name>
instead ofpackage <Package Name>
. -
Fix an issue that made the expand action of the explorer not work on specific filter combinations. The explorer now correctly allows to expand elements when the Hide Root Namespaces filter is disabled and the
Hide KerML/SysML Standard Libraries
filter is enabled. -
Fix an issue where some error messages were displayed when an element with implicit Specialization was selected and the Related Elements View was displayed.
-
Fix deletion of imported models from the explorer. Users can now delete imported library models (i.e. models with a
LibraryPackage
element), but they cannot edit them nor delete elements inside them. Imported models that do not contain libraries can be modified as regular models created in the project. -
Ensure that a non-library imported model is not moved into the User libraries directory when a LibraryPackage is created in it.
New features
-
Handle imported package elements in diagrams.
-
A new palette is available in SysON, all tools have been organized in sections.
This new palette contains a search bar, allowing to easily retrieve tools by their name.
Some actions (delete, edit, …) are also available as shortcuts.
-
New SysMLv2 Project Data Versioning-related REST APIs. The new endpoints are:
-
getCommits (GET /api/rest/projects/{projectId}/commits): Get all commits in the given project. There is only one commit per project in SysON for now, and its Id is the same as the project Id. It represents the current state of the project, without taking care of data created/updated/deleted since the creation of the project.
-
createCommit (POST /api/rest/projects/{projectId}/commits): Create a commit in the given project. There is only one commit per project in SysON for now, so the default implementation of this method does nothing.
-
getCommitById (GET /api/rest/projects/{projectId}/commits/{commitId}): Get the commit represented by its Id for the given project. There is only one commit per project in SysON for now, and its Id is the same as the project Id. It represents the current state of the project, without taking care of data created/updated/deleted since the creation of the project.
-
getCommitChange (GET /api/rest/projects/{projectId}/commits/{commitId}/changes): Get all changes of the commit represented by its Id for the given project. There is only one commit per project in SysON for now, and its Id is the same as the project Id. The default implementation retrieves all elements containing in the project, without taking care of data created/updated/deleted since the creation of the project.
-
getCommitChangeById (GET /api/rest/projects/{projectId}/commits/{commitId}/changes/{changeId}): Get the changes associated to the given change Id for the commit represented by its Id for the given project. There is only one commit per project in SysON for now, and its Id is the same as the project Id. The default implementation retrieves all changes containing in the project, without taking care of data created/updated/deleted since the creation of the project. The change Id parameter should be randomly generated but constant for an unlimited period. We decided to generate this Id from it’s commit Id and element Id, to be able to compute it.
-
Improvements
-
OccurrenceUsage#portionKind
is nowunsettable
and its default value isnull
in the SysMLv2 metamodel to conform to the specification. -
Improve the code in import module, by making it more generic. It now reports (on the server side) more messages to understand the scope of what is imported and the errors encountered.
-
Add support of
OccurrenceDefinition
andOccurrenceUsage
in export from model to textual SysMLv2. -
Remove 'New objects from text' contextual menu entry for libraries.
-
Allow to import
.kerml
textual files. -
Remove 'New object' and 'New representation' contextual menu entries for libraries.
-
Remove Sirius Web default explorer. The SysON Explorer is now the default explorer for SysON, and the Sirius Web explorer cannot be used anymore.
Dependency update
-
Switch to Sirius Web 2024.11.10
Technical details
-
For technical details on this SysON release please refer to changelog.
2024.11.0
Key highlights
-
Model conformance to SysMLv2 Beta 2.2 version: the metamodel has been modified to conform to SysMLv2 and KerML Beta 2.2 specifications released on October 2024. All standard libraries have also been updated.
-
Introduce SysMLv2 REST APIs: introduce partial support of the standard REST APIs from the OMG SystemsModelingAPI. In this first implementation we have implemented Project-related & Object-related REST APIs. Please read the APIs section in this documentation for more details.
Breaking changes
-
Add CaseUsage and CaseDefinition in General View diagram, the following classes have been renamed to reflect their new usage:
-
Rename
UseCaseDefinitionActorsCompartmentNodeDescriptionProvider
toCaseDefinitionActorsCompartmentNodeDescriptionProvider
-
Rename
UseCaseDefinitionObjectiveRequirementCompartmentNodeDescriptionProvider
toCaseDefinitionObjectiveRequirementCompartmentNodeDescriptionProvider
-
Rename
UseCaseDefinitionSubjectCompartmentNodeDescriptionProvider
toCaseDefinitionSubjectCompartmentNodeDescriptionProvider
-
Rename
UseCaseUsageActorsCompartmentNodeDescriptionProvider
toCaseUsageActorsCompartmentNodeDescriptionProvider
-
Rename
UseCaseUsageObjectiveRequirementCompartmentNodeDescriptionProvider
toCaseUsageObjectiveRequirementCompartmentNodeDescriptionProvider
-
Rename
UseCaseUsageSubjectCompartmentNodeDescriptionProvider
toCaseUsageSubjectCompartmentNodeDescriptionProvider
-
-
Handle of aliases and external references have been improved for textual import, the following methods have been deleted:
-
Deleted
AstTreeParser#resolveAllImport
-
Deleted
AstTreeParser#resolveAllReference
-
Deleted
ProxyResolver#resolveAllProxy
-
-
Add an edge tool to add target element as nested usage. The following methods have been moved from
NodeCreationTestsService
toSemanticCheckerService
to better separate testing concerns:-
getElementInParentSemanticChecker
-
checkEditingContext
The following methods have been moved fromNodeCreationTestsService
toDiagramCheckerService
to better separate testing concerns: -
getChildNodeGraphicalChecker
-
getCompartmentNodeGraphicalChecker
-
getSiblingNodeGraphicalChecker
-
checkDiagram
-
-
Remove default name of relationships and improve edge labels. The method
getSuccessionLabel
inViewLabelService
has been deleted, succession labels are now computed with the genericgetEdgeLabel
method. -
Allow the drop of elements on empty diagram nodes. Rename the class
SemanticCheckerFactory
toSemanticRunnableFactory
to reflect the new use cases of the class. -
Align metamodel to SysMLv2 and KerML Beta 2.2 specifications. The changes are:
-
Import
-
visibility attribute default value is now
private
instead ofpublic
-
-
Type
-
inheritedMemberships operation now have a second parameter,
excludeImplied : boolean
-
-
Feature
-
new
featureTarget : Feature
derived reference -
new
typingFeatures : List<Feature>
operation
-
-
InvocationExpression
-
new
operand : List>Expression>
derived reference
-
-
AnalysisCaseUsage
-
remove
analysisAction : ActionUsage
reference
-
-
AnalysisCaseDefinition
-
remove
analysisAction : ActionUsage
reference
-
-
-
Extract direct edit grammar from services module into separate module (new
syson-direct-edit-grammar
module).
Dependencies update
-
Switch to Spring Boot 3.3.3
-
Migrate the frontend to
react 18.3.1
,react-dom 18.3.1
,react-router-dom 6.26.0
,@xstate/react: 3.0.0
and@ObeoNetwork/gantt-task-react 0.6.0
-
Switch to Sirius Web 2024.11.0
-
Switch to the final release version of AQL 8.0.2
-
Switch to @ObeoNetwork/gantt-task-react 0.6.1 to benefit for enhancements
-
Add a dependency to
material-react-table "2.13.3"
andexport-to-csv "1.3.0"
-
Switch to
commons-io 2.17
-
Switch to
java-uuid-generator 5.1.0
-
Switch to SysIDE 0.6.2
Bug fixes
-
Fix an issue that prevented the import of
Allocation
andAllocationDefinition
. -
Fix import of some boolean attributes (
Type#isAbstract
,Feature#isDerived
,Feature#isEnd
,Feature#isReadOnly
). -
Fix an issue where the import failed to resolve
redefinedFeature
references when theRedefinition
had no name. -
Fix an issue where
InterfaceUsage
andFlowConnectionUsage
elements might be created inside the wrong membership in the Interconnection View diagram. -
Add
declaredName
attribute inAnnotatingElement
(if present) in export to textual SysMLv2. -
Fix visibility issue when resolving name of privately imported element during export.
-
Fix an issue where it was impossible anymore to delete the cardinality of a
Usage
as graphical node through direct edit. -
Fix an issue where
Subsetting
elements were not deleted at the same time as the deletion of their subsettedFeature
.
Improvements
-
Add CaseUsage and CaseDefinition representations in the General View diagram.
-
Update Batmobile template.
-
Handle of aliases and external references have been improved for textual import.
-
Add support for short name in container and compartment item labels.
-
Allow to set short name via the direct edit.
-
Make Declared Short Name accessible from the Core tab instead of the Advanced tab in the details view.
-
Remove default name of relationships and improve edge labels.
-
Allow to create dependencies from the Explorer view.
-
Allow the drop of elements on empty diagram nodes. It is now possible to drop elements from the explorer on the information box visible on empty diagrams. The dropped element is displayed on the diagram, the same way element creation tools on the information box display them on the diagram.
-
Exclude
src/test/resources
from checkstyle. This reduces the time required to build SysON, especially when using Spring Tool Suite. -
Add
New Subsetting
tool onPartUsage
to create aSubsetting
edge and aPartUsage
that is subset. -
Add
New Feature Typing
tool onPartUsage
to create aFeatureTyping
edge and aPartDefinition
. -
Add
New Binding Connector As Usage
tool onPartUsage
in Interconnection View diagram. -
Add
New Flow Connection
tool onPartUsage
in Interconnection View diagram. -
Add
New Interface
tool onPartUsage
in Interconnection View diagram. -
Handle
UseCaseUsage
andIncludeUseCaseUsage
elements in export to textual SysMLv2. -
All standard libraries have been updated to comply with the SysML Beta 2.2 specification.
-
Improve import feature non regression tests. Added source sysml file and unaltered ast.json result.
New features
-
Add a new Custom node representing à Note among possible node style descriptions available. The custom node is resizable and the text content is wrapped (back to the line) if it is too long compare to the node size.
-
Represent
Documentation
as Note graphical node. TheDocumentation
graphical node can appear when user drag and dropDocumentation
element from explorer on the diagram. TheDocumentation
graphical node is linked to its documented element by an edge and the node can only appear if the documented element is represented on the diagram. -
Display prefix keywords in labels of
Documentation
graphical nodes.
-
Allow creation of
Comment
from the Explorer view. -
Add
Comment
representation in graphical views. TheComment
graphical node can appear when user drag and dropComment
element from explorer on the diagram but also when user handle creation tool from the palette. TheComment
graphical node is linked to its annotated element by an edge and the node can only appear if the annotated element is represented on the diagram. -
Display prefix keywords in labels of
Comment
graphical nodes.
-
Add
Comment
property to Core tab of the Details view, allowing to add/edit aComment
for the selected element. This property widget will only handle the firstComment
associated to the selected element. If noComment
is associated to the selected element, then a new value in this widget will also create aComment
element and will associate it to the selected element. -
Add an edge tool to add target element as nested usage. This complements the existing tool that allows to add the source element as a nested usage of the target.
-
Introduce SysMLv2 REST APIs. In this first implementation we will only implement the following REST APIs, thanks to Sirius Web:
-
Project-related REST APIs:
-
getProjects (GET /api/rest/projects): Get all projects.
-
getProjectById (GET /api/rest/projects/{projectId}): Get project with the given id (projectId).
-
createProject (POST /projects): Create a new project with the given name and description (optional).
-
deleteProject (DELETE /api/rest/projects/{projectId}): Delete the project with the given id (projectId).
-
updateProject (PUT /projects/{projectId}): Update the project with the given id (projectId).
-
-
Object-related REST APIs.
-
getElements (GET /api/rest/projects/{projectId}/commits/{commitId}/elements): Get all the elements in a given project at the given commit. There are no commits in Sirius Web so you can use the same Id as the projectId for the commitId.
-
getElementById (GET /api/rest/projects/{projectId}/commits/{commitId}/elements/{elementId}): Get element with the given id (elementId) in the given project at the given commit. There are no commits in Sirius Web so you can use the same Id as the projectId for the commitId.
-
getRelationshipsByRelatedElement (GET /api/rest/projects/{projectId}/commits/{commitId}/elements/{elementId}/relationships): Get relationships that are incoming, outgoing, or both relative to the given related element. There are no commits in Sirius Web so you can use the same Id as the projectId for the commitId.
-
getRootElements (GET /api/rest/projects/{projectId}/commits/{commitId}/roots): Get all the root elements in the given project at the given commit. There are no commits in Sirius Web so you can use the same Id as the projectId for the commitId.
-
-
2024.9.0
Key highlights
-
Model conformance to SysMLv2 Beta 2 version: the metamodel has been modified to conform to SysMLv2 Beta 2 specification released on the 3rd of February 2024(see https://www.omg.org/spec/SysML/ for more details) and KerML Beta 2 specification released on the 17the of February 2024(see https://www.omg.org/spec/KerML/ for more details).
-
New "New objects from text" menu entry: from elements in Explorer view, allow to insert textual SysMLv2 as objects under the selected element. The menu entry shows a dialog with a textarea allowing to write or paste textual SysMLv2.
A click on the Insert button converts the textual SysMLv2 into model elements and add them under the selected element.
-
New "Show/Hide Icons in Diagrams" diagram panel entry: from panel in Diagrams, allow to show or hide the icons of diagrams elements.
-
New "Show/Hide Inherited Members in Diagrams" diagram panel entry: from panel in Diagrams, allow to show or hide the inherited members from users models in diagrams.
-
New "Show/Hide Inherited Members from Standard Libraries in Diagrams" diagram panel entry: from panel in Diagrams, allow to show or hide the inherited members from standard libraries in diagrams.
Breaking changes
-
Move StateTransitionCompartmentNodeDescriptionProvider from syson-diagram-statetransition-view to module syson-diagram-common-view.
-
Code refactoring:
-
Rename
ExhibitStatesCompartmentItemNodeDescriptionProvider
toStatesCompartmentItemNodeDescriptionProvider
. -
StatesCompartmentNodeDescriptionProvider now handles both exhibit and non-exhibit states.
-
-
Align metamodel to SysMLv2 Beta 2 specification released on the 3rd of February 2024(see https://www.omg.org/spec/SysML/ for more details) and KerML Beta 2 specification released on the 17the of February 2024(see https://www.omg.org/spec/KerML/ for more details). You may have to fix your existing SysON models/projects by your own means to still be able to open them with SysON. Please download all your models/projects before upgrading to 2024.9.0. The changes are:
-
AnnotatingElement
-
add derived reference "ownedAnnotatingRelationship : Annotation"
-
-
Annotation
-
add derived reference "owningAnnotatingElement : AnnotatingElement"
-
-
Connector
-
remove attribute "isDirected : boolean"
-
-
OperatorExpression
-
remove derived reference "operand : Expression"
-
-
ParameterMembership
-
add operation "parameterDirection() : FeatureDirectionKind"
-
-
Type
-
add operation "directionOfExcluding(Feature, Type[0..\*]) : FeatureDirectionKind"
-
-
-
Refactor and simplify the implementation of the Interconnection View diagram, the following classes have been deleted, renamed, or merged:
-
Deleted
InterconnectionViewForDefinitionDescriptionProvider
-
Deleted
InterconnectionViewForDefinitionDiagramDescriptionProvider
-
Deleted
InterconnectionViewForUsageDiagramDescriptionProvider
-
Merged
RootUsageNodeDescriptionProvider
andRootDefinitionNodeDescriptionProvider
intoRootNodeDescriptionProvider
-
Renamed
FirstLevelChildPartUsageNodeDescriptionProvider
toFirstLevelChildUsageNodeDescriptionProvider
-
Renamed
ChildPartUsageNodeDescriptionProvider
toChildUsageNodeDescriptionProvider
-
-
Switch to Sirius Web 2024.7.1: all diagrams must be deleted and created again, due to the fix of this Sirius Web bug.
-
Add tool to create an ExhibitState from a StateUsage, the following classes & methods have been deleted or modified to simplify the handling of ExhibitStates
-
Deleted
StateTransitionToggleExhibitStateToolProvider
-
Deleted
UtilService#canBeExhibitedStateUsage
-
Deleted
UtilService#setUnsetAsExhibit
-
Deleted
UtilService#isExhibitedStateUsage
-
Deleted
UtilService#getAllReachableStatesWithoutReferencialExhibitExpression
-
Deleted
ViewNodeService#isHiddenByDefaultExhibitStates
-
Deleted
ViewNodeService#isHiddenByDefaultNonExhibitStates
-
Add new
IViewDiagramElementFinder
parameter toStateTransitionViewNodeToolSectionSwitch
-
-
Migrate frontend to MUI 5, if you contributed React components that use MUI, you should upgrade them to use MUI 5.
-
Ensure that dropped nodes are always collapsed, the following methods have been moved to support this feature
-
The method
ToolService#dropElementFromExplorer
has been moved toViewToolService
since it now requires view-related imports that motivated this refactoring. -
The method
ToolService#dropElementFromDiagram
has been moved toViewToolService
for the sake of consistency.
-
-
Fix Add Existing Elements tool for start and done actions, the following methods have been moved to
UtilService
to make them reusable by different services (they are now used byViewNodeService
andViewToolService
):-
ViewNodeService#getAllStandardStartActions
-
ViewNodeService#getAllStandardDoneActions
-
ViewNodeService#isAction
-
ViewNodeService#isPart
-
Split
DiagramDirectEditListener#exitExpression
directEdit service into two services :exitNodeExpression
andexitListItemExpression
to specify the grahical context of use . -
Add new boolean parameter
isCompartmentItem
to theLabelService#directEdit
service to clarify the graphical element type to edit. -
Rename
LabelService#getUsagePrefix
intogetUsageListItemPrefix
to specify the computation of this prefix on list item elements. -
Rename
ViewLabelService#getInitialDirectEditLabel
service intogetInitialDirectEditListItemLabel
to specify the computation of the initial label on list item elements.
-
-
Fix an issue that revealed the documentation compartment when dropping an element on itself, the following method’s contract has been updated as part of the fix:
-
EMFUtils#isAncestor(parent, eObject)
now returnstrue
ifparent == eObject
.
-
-
Allow to create an Action Flow View diagram on an ActionDefinition or ActionUsage in addition to Package, the tool Create Package is not available in Action Flow View diagrams anymore.
Dependencies update
-
Switch to Sirius Web 2024.9.0
-
Migrate frontend to MUI 5
-
Switch to
maven-checkstyle-plugin
3.4.0 -
Switch to Spring Boot 3.3.1
-
Add a dependency to
CycloneDX
to compute the backend software bill of materials during the build -
Add a dependency to
pathfinding
Bug fixes
-
Prevent nested part to be rendered as border nodes in the Interconnection View diagram.
-
Fix an issue where a click on inherited members inside compartments was raising an error instead of displaying the palette.
-
Fix an issue where non-containment references in standard libraries weren’t correctly imported into the project’s editing context.
-
Remove owning Usage memberships from inherited memberships of Usages. Memberships of a Type are inherited via Specialization or Conjugation, not by composition.
-
Fix an issue that allowed to drop an element from the explorer or the diagram on one of its children. Doing so deleted both the dropped element and its children from the diagram, and could delete the representation if one of the element was the root element of the representation.
-
Fix an issue that made the direct edit not working on Constraint and Requirement elements.
-
Fix an issue that made the addExistingElements not work properly for start and done actions inside actions and parts.
-
Fix an issue on constraint expression name resolution that prevented from referencing elements in other containing namespaces than the direct owner of the constraint. It is now possible to reference an element in any of the containing namespaces of the constraint.
-
Fix an issue that deleted the content of an action when it was dropped from the diagram to an action flow compartment.
-
Fix an issue where it was impossible anymore to set the cardinality of an
Element
as graphical node through direct edit. -
Fix an issue where ConjugatedPortDefinition labels were rendered as
null
instead of their actual name. -
Fix an issue that made direct edit of names not working on nodes in the Interconnection View diagram.
-
Fix an issue that revealed the documentation compartment when dropping an element on itself. The drop isn’t allowed anymore, and a warning message is displayed.
-
Fix an issue that deleted feature typing specialization when nesting a PartUsage in a PartDefinition.
-
The tool Add Part as nested Part now correctly keeps the existing relationships of the PartUsage after its owner is changed.
-
-
Fix an issue that prevented the drop of the root element of a diagram on its background.
-
Fix an issue that made all the elements references when imported by the SysMLParser.
Improvements
-
Add actions in PartUsage and PartDefinition
-
Add states in PartUsage and PartDefinition
-
Add ExhibitStates on General View diagram
-
Allow the creation of a StateTransitionView diagram on a PartUsage/PartDefinition
-
Allow the creation of a StateTransitionView diagram on a StateUsage/StateDefinition
-
The InterfaceUsage created by the New Interface edge tool in the Interconnection View diagram are now created under closest containing Definition/Package.
-
Simplify the implementation of the Interconnection View diagram and remove duplicated code
-
Add action node in Interconnection View diagram
-
Add documentation and action flow compartments for action nodes in the Interconnection View diagram
-
Add label support for referential Usages
-
Nodes that are references now correctly contain the "ref" keyword
-
Elements in lists that are references now correctly contain the "ref" keyword
-
AttributeUsage do not contain the "ref" keyword since they are always referential
-
-
Add support for "ref" keyword in direct edit
-
Prefixing the name of an Usage with "ref" sets it as a reference
-
Not setting the "ref" prefix of an Usage sets it as a composite (non-reference)
-
-
Use empty diamond source style for nested reference usage edge
-
Nested usages that are composite are connected by a filled diamond edge
-
Nested usages that are references are connected by an empty diamond edge
-
-
Modify the creation of an ExhibitState from a StateUsage or StateDefinition. There is now several tools for creating an ExhibitState. The first one called "New ExhibitState" creates a simple ExhibitState. The second one called "New ExhibitState with referenced State" shows a dialog allowing to select an existing State to associate to the new ExhibitState.
-
Display qualified names in diagrams nodes' labels in case of standard libraries elements.
-
Allow to select existing Action on Perform tool.
-
Allow to set measurement units via direct edit. It is now possible to configure the measurement unit for the value of an element, e.g.
mass = 10 [kg]
. -
Allow to select existing Type on Subject tool.
-
Display prefix keywords in label for Usage compartment element
-
Display multiplicity suffix property keywords in label for Usage element
-
Allow direct edit of prefix keywords and multiplicity suffix for Usage elements
-
Prefixing or not the name of an Usage attribute with direction or "abstract" or "variation" or "readonly" or "derived" or "end" (this order counts) sets its matching property with the correct value
-
Suffixing or not the name of an Usage attribute with "ordered" or "nonunique" (this order counts) sets its matching property with the correct value
-
-
Add support for constraint expressions in the general view. Constraints with expressions such as
mass >= 10 [kg]
are now correctly parsed and the corresponding semantic objects are created in the constraint. -
Add actors compartment in UseCase and Requirement in the General View diagram.
-
Handle the representation of actors on the General View diagram. Actors are represented with a stick figure image, with their label displayed below the image.
-
Add support for edges between actors and their containing UseCase/Requirement in the General View diagram. The source of the edge (the UseCase or Requirement) can be reconnected to another UseCase or Requirement, but the target (Actor) cannot be reconnected.
-
Allow to select existing RequirementUsage and RequirementDefinition on Objective tool.
-
Add a check to make the build fail if a Cypress test contains
it.only
. -
Add support for public import in direct edit specializations. It is now possible to specialize an element with a qualified name containing namespaces importing the required features. For example,
myAttribute : ISQ::MassValue
now correctly types the attribute withISQBase::MassValue
. -
Improve the support of root
Namespaces
in SysON documents.-
Root
Namespaces
are now implicitly created at the root of SysON documents. -
Creating an element at the root of a SysON document now creates it in its root
Namespace
. -
A new filter is available to hide root
Namespaces
and is enabled by default. -
It is no longer possible to create
Namespace
from the explorer. -
It is no longer possible to create a representation on a root
Namespace
.
-
-
Improve the drop from the explorer to ensure that dropped nodes are always collapsed.
-
Display prefix keywords in labels of
Definitions
andUsages
graphical nodes. -
Ensure that dropping an element from the explorer on the diagram reveals the corresponding node if it is already on the diagram and hidden. A warning message is now displayed when attempting to drop an element which is already displayed and visible in the target container.
-
Ignore keywords order during direct edit of prefixes labels of
Definitions
andUsages
graphical elements. -
DirectEdit on graphical node or list item authorized only to modify keywords which can be displayed in each label.
-
Allow to drop a Definition from the explorer on an Usage on a diagram or in a list compartment to type it.
-
Allow to create an Action Flow View diagram on an ActionDefinition or ActionUsage in addition to Package.
New features
-
Add "Show/Hide Icons in Diagrams" action in Diagram Panel, allowing to show/hide icons in the diagrams (icons are not part of the SysMLv2 specification).
-
Add new tools allowing to create an ExhibitState at the root of General View and StateTransition View. The first one called "New ExhibitState" creates a simple ExhibitState. The second one called "New ExhibitState with referenced State" shows a dialog allowing to select an existing State to associate to the new ExhibitState. The selected State will be added to the diagram, not the new ExhibitState.
-
Handle FlowConnectionUsage between PortUsages in Interconnection View. A new edge tool allows to create a flow between two ports.
-
Add tools to set a Feature as composite or reference.
-
Handle ItemUsage in Interconnection View and FlowConnectionUsage using items as their source/target.
-
Add documentation property to Core tab of the Details view, allowing to add/edit a documentation for the selected element. This property widget will only handle the first documentation associated to the selected element. If no documentation is associated to the selected element, then a new value in this widget will also create a Documentation element and will associate it to the selected element.
-
Add new "New objects from text" menu entry on elements in Explorer view, allowing to insert textual SysMLv2 as objects under the selected element. The menu entry shows a dialog with a textarea allowing to write or paste textual SysMLv2.
A click on the Insert button converts the textual SysMLv2 into model elements and add them under the selected element.
-
Improve the drag and drop of container elements to move their content.
-
Handle implicit specializations from standard libraries for Usages/Definitions.
-
Add "Show/Hide Inherited Members in Diagrams" action in Diagram Panel, allowing to show/hide inherited members from users models in diagrams.
-
Add "Show/Hide Inherited Members from Standard Libraries in Diagrams" action in Diagram Panel, allowing to show/hide inherited members from standard libraries in diagrams.
2024.7.0
Key highlights
-
Expanded Diagram and Model Support: We’ve significantly expanded our support for various elements and tools.
-
Increased Stability and Reliability: We’ve addressed several key bugs and stability issues including fixing problems with diagrams and import capabilities. These improvements help maintain the integrity and accuracy of semantic data.
Breaking changes
-
Add standard libraries and new models now have a root Namespace to conform with KerML/SysML specifications.
-
Generalization of StateTransition descriptions.
-
Rename
AbstractDiagramDescriptionProvider
nameGenerator
asdescriptionNameGenerator
. Impacted concrete implementations:ActionFlowViewDiagramDescriptionProvider
,GeneralViewDiagramDescriptionProvider
,InterconnectionViewForDefinitionDiagramDescriptionProvider
,InterconnectionViewForUsageDiagramDescriptionProvider
,StateTransitionViewDiagramDescriptionProvider
. -
Rename
syson-diagram-statetransition-view
CompartmentNodeDescriptionProvider
asStateTransitionActionsCompartmentNodeDescriptionProvider
. -
StateTransitionViewEdgeService
removed, services moved toViewEdgeService
andViewLabelService
. -
StateTransitionActionToolProvider
moved tosyson-diagram-common-view
-
StateTransitionCompartmentNodeToolProvider
moved tosyson-diagram-common-view
-
createState
andcreateOwnedAction
services moved toViewToolService
-
-
Switch to sirius-web domain driven design architecture. Please download your existing SysON projects before moving to this new version. A reset of the database is needed.
-
Code refactoring:
-
Move
AbstractDiagramDescriptionProvider#createNodeToolFromDiagramBackground(NodeDescription, EClassifier)
to newToolDescriptionService
-
Move
AbstractViewElementDescriptionProvider#addExistingElementsTool(boolean)
to newToolDescriptionService
-
Remove
AbstractViewElementDescriptionProvider
-
Move
createDropFromExplorerTool
to newToolDescriptionService
-
Move and rename
AbstractDiagramDescriptionProvider.addElementsToolSection(IViewDiagramElementFinder)
toToolDescriptionService#addElementsDiagramToolSection()
-
Move and rename
AbstractNodeDescriptionProvider#addExistingElementsTool()
toToolDescriptionService#addElementsNodeToolSection()
-
Remove
AbstractDiagramDescriptionProvider
-
Rename
StateTransitionActionToolProvider
toStateTransitionActionCompartmentToolProvider
-
Move
AbstractViewNodeToolSectionSwitch#buildCreateSection(NodeTool…)
toToolDescriptionService#buildCreateSection(NodeTool…)
-
Merge
AbstractViewNodeToolSectionSwitch#addElementsToolSection()
andAbstractViewNodeToolSectionSwitch#addExistingNestedElementsTool()
inToolDescriptionService#addElementsNodeToolSection(boolean)
-
-
ViewLabelService#getCompartmentItemUsageLabel
has been renamed toViewLabelService#getCompartmentItemLabel
. -
ViewLabelService#getUsageInitialDirectEditLabel
has been renamed toViewLabelService#getInitialDirectEditLabel
. -
AbstractViewNodeToolSectionSwitch#createNestedUsageNodeTool
has been deleted. Please useToolDescriptionService#createNodeTool
instead -
AbstractCompartmentNodeDescriptionProvider#getItemCreationToolProvider
has been renamed togetItemCreationToolProviders
and now returns a list ofINodeToolProvider
.
Dependencies update
-
Switch to Sirius Web v2024.7.0
-
Switch to @ObeoNetwork/gantt-task-react 0.4.19
-
Switch to EMF Json 2.3.12
-
Switch to Spring Boot 3.2.5
-
Switch to
@apollo/client
3.10.4 -
Switch to
graphql
16.8.1 -
Switch to
vite
5.2.11,vitest
1.6.0,@vitest/coverage-v8
1.6.0 and@vitejs/plugin-react
4.3.0 -
Switch to
typescript
5.4.5 -
Switch to
turbo
1.13.3 -
Switch to
jacoco
0.8.12 -
Switch to
maven-checkstyle-plugin
3.3.1 -
Switch to
subscriptions-transport-ws
0.11.0 -
Remove the dependency to
reflect-metadata
-
Add test dependency to Cypress 12.11.0 (only required to execute integration tests)
Bug fixes
-
Fix an issue where the direct edit of single digit cardinalities were not taken into account.
-
Fix an issue where Allocate edges were not displayed in the Action Flow View diagram.
-
Fix an issue where the computation of Succession was sometimes wrong.
-
Fix the owner Membership of dropped elements.
-
Fix names used during textual export of FeatureValue elements.
-
Fix names used during textual export of MetadataDefinition elements.
-
Fix names used during textual export of FeatureChainExpression elements.
-
Fix missing parts of InvocationExpression elements during textual export.
-
Fix missing element names in the Expression element during textual export.
-
Fix an issue where the simple quotes were not escaped when exporting as textual files.
-
Fix an issue where models were exported with a global indentation instead of no indentation.
-
Fix textual import of Documentation elements by removing /* */ around texts.
-
Fix an issue where the Adjust size tool had no effect on Packages nodes.
-
Fix an issue where the double quotes were set along with the string value in case of a direct edit of the value part.
-
Allow the creation of sub-Packages in the model explorer
Improvements
-
Add root Namespace to SysON models and libraries to conform to SysMLv2 specification.
-
Improve support for whitespace, quotes, and special characters in direct edit.
-
Handle start and done actions in Action Flow View & General View diagrams.
-
Add State and StateDefinition in the General View diagram.
-
Add Transition source and target to Core properties in the Details view.
-
All redefines references of the SysMLv2 metamodel have been implemented.
-
The textual import running process have been improved. By default, end users don’t have to copy syside-cli.js near the syson-application jar anymore. The embedded syside-cli.js is copied in a system temp folder and executed from there (with node). But, if you encounter execution rights problem, you can still copy syside-cli.js in a place where you have the appropriate rights and use the org.eclipse.syson.syside.path application option.
-
Property "Typed by" is now always visible in the Details view for Feature elements, even if the Feature doesn’t have a type yet.
-
Rename creation tools for Start and Done actions (from Add Start/Done to New Start/Done)
-
Reduce the default height of the Package node in diagrams
-
Move Feature#direction in Core properties tab of the Details view
-
Sort New Object menu entries
-
Add Direct Edit tool in Control (ForkNode, JoinNode…) nodes palettes
-
Allow multiple occurrences of Start and Done actions in actions compartments.
-
Rewrite textual import. It is still an experimental feature but should now be faster and accurate.
-
Rewrite the addExistingElement tool. The tool now works correctly on packages, and doesn’t render sibling elements when their semantic element has been rendered by another node (e.g. in a compartment).
-
The empty/null values for Subsetting/Redefinition/Subclassification/FeatureTyping are not displayed anymore in diagram node labels.
-
Add tools for creating Ports with direction
-
Add tools for creation Items with direction
-
Change the default name of the transition element to source_to_target
-
Provide new icons for State, Conjugation, Port (in,in/out,out) and Item (in,in/out,out).
-
Add tools to create Items and Parts in Port and PortDefinition
-
Add tool to create Requirements in RequirementDefinition
-
Add tools for creating Items on ActionDefinition in GeneralView and ActionFlowView.
-
AcceptAction is now available inside an Action body
-
Add private and protected visibility decorators on all elements
New features
-
Add Cypress test infrastructure and execute the Cypress tests as part of pull request checks.
-
Add integration test infrastructure
-
Initial contribution of this documentation
-
Handle the JoinNode, MergeNode, ForkNode, DecisionNode elements in actions compartments.
-
Handle the ExhibitState elements in diagrams
-
Add new documentation compartment on all existing nodes in all diagrams.
2024.5.0
Key highlights
-
Expanded Diagram and Model Support: We’ve significantly expanded our support for various views, including the addition of representations for use cases, occurrences, and allocations. This enhancement provides more comprehensive tools to visualize and manage SysML v2 models. This includes the addition of diagrams for use cases, occurrences, and allocations.
-
Improved User Experience: We’ve improved how elements are displayed, particularly in terms of ports and compartments. These enhancements ensure a clearer and more intuitive user interface.
-
Increased Stability and Reliability: We’ve addressed several key bugs and stability issues including fixing problems with diagrams and import capabilities. These improvements help maintain the integrity and accuracy of semantic data.
-
First Export Capability: Our enhanced integration of SysIDE now supports better integration of the SysML v2 format. We’re now able to export projects in the standard textual format, facilitating easier data sharing and compatibility with other industry-standard tools. This promotes better data exchange and collaboration.
Breaking changes
-
The
requirement-view
diagram has been introduced by error in the last release. This diagram isn’t defined in the SysMLv2 specification. It has been deleted in this release.
Dependencies update
-
Switch to Sirius Web v2024.5.0
-
Switch to @ObeoNetwork/gantt-task-react 0.4.9
-
Add dependency to org.apache.commons.commons-text 1.10.0
Bug fixes
-
The "Add existing elements (recursive)" has been modified to work on
PartUsage
. -
From Interconnection view diagram, attributes compartment has been added in children
PartUsage
nodes.
-
No error is raised anymore when setting a valid new value (with primitive type) in the Details view.
-
The body feature of a
Comment
remove now the "/*" and "*/" characters while importing a model from SysML textual format. -
All
Memberships
are now contained in their parent throughownedRelatedElement
instead ofownedRelationship
reference. -
Rename action from explorer is now renaming tree items as expected.
-
EnumerationDefinition
is now created with a default name.
-
"Add existing element (recursive)" action has been updated to create child nodes for nested and owned usages at the root of the diagram.
-
While importing some of the standard examples, there are no more exception mainly when some of examples are linked to non resolved elements.
-
Hide capabilities have been restored and improved in the palette. It’s now possible to hide a node but also all its content (recursive) or simply direct content (Show valued content action).
-
Namespace.getImportedMemberships
method now prevents name collisions as stated in the specification (KerML 7.2.5.4 Imports). -
Non end Usages have been removed from AllocationDefinition ends compartment.
-
Circular containment of nested parts including self containment are now forbidden.
-
Time performance has been improved when using
Become nested part
edge creation tool. -
state transition
andactions
compartments are now available onStateDefinition
andStateUsage
node.
-
Inherited features in compartments don’t display itself anymore.
-
Add existing element (recursive)
behavior has been modified to be more robust and avoid potential exception, mainly the display of nested domain-based edge on State transition view diagram.
Improvements
-
Composite usages are now forbidden inside
PortDefinition
/PortUsage
. -
Composite usages are now forbidden inside
AttributeDefinition
/AttributeUsage
. -
Explicit usage of
node
to call SysIDE JavaScript file has been added. -
Membership
#visibility attribute has been added toCore
properties in the Details view.
-
PortUsage
#direction attribute has been added toCore
properties in the Details view.
-
Definition
/Usage
node are now collapsed by default in General view & Action Flow View diagrams. -
Definition
/Usage
nodes are expanded in all diagrams when a compartment item is created. -
All elements are now represented with their icon.
-
Label is now positioned from inside to outside for
Ports
(Border Nodes).
-
General view diagrams can now be created on any
Namespace
element. -
Instead of revealing all compartments of a node when user creates a child in one compartment, only the compartment parent of the child to create is revealed. Other compartments visibility doesn’t change.
-
It’s now possible to create Interconnection view diagrams on any
Usage
/Definition
element. -
A new compartment with a free-form layout inside the
ActionUsage
andActionDefinition
nodes is now available. Thanks to this compartment, user can separateAction
nodes and connect them by using edges.
-
Remove button is now available on containment edges.
-
"Add existing elements" tools have been added on
State
andStateDefinition
graphical elements.
New features
-
Compartments of
RequirementDefinition
andRequirementUsage
have been redesigned to better fit the specification and examples.
-
"Become nested" edge creation tools has been added for
AttributeUsage
,ItemUsage
,PartUsage
andPortUsage
nodes.
-
Creation tools (mainly
AttributeUsage
,PartUsage
,PortUsage
ItemUsage
) have been added inActionUsage
,ConstraintUsage
,InterfaceDefinition
,RequirementDefinition
andPortUsage
. -
UseCaseDefinition
andUseCaseUsage
elements are now handled in General view.
-
Composite edges between
Usage
and compartment content have been added to link nestedActions
with itsAction
, nestedConstraints
with itsConstraints
and nestedConstraints
with itsRequirement
.
-
OccurrenceDefinition
andOccurrenceUsage
elements are now handled in General view.
-
Reconnection tools have been added for composition edges.
-
AllocationDefinition
andAllocationUsage
elements are now handled in General view.
-
A service that serializes a SysML element to its textual representation defined by the OMG Standard is now available and used in export capability.
-
ConjugatedPortDefinition
is now handled in diagrams,Explorer
and Details View. -
It’s now possible to create and manipulate Interface edges in Interconnection view diagram.
-
State Transition view diagrams are now available on
Package
elements. -
Inherited features are now taken into account in features compartments.
-
AcceptAction
elements are now handled in General view diagram.
-
PortUsage
in Interconnection View are now represented with rotative image. Whatever its border support, thePortUsage
node is always represented by an arrow pointing inside the parent node.
-
It’s now possible to represent and handle
Succession
edges betweenActions
in General view diagram, from background diagram but also from action flow compartment.
2024.3.0
Key highlights
-
Improved User Interactivity: New features such as direct editing allow users to change element details seamlessly, without data loss. This enhances the overall user experience by making it more intuitive and reducing the time required to make changes.
-
Expanded Library and Standard Support: All KerML and SysML v2 standard libraries are now included by default. This expands the tool’s capabilities and ensures compatibility with industry standards, making it easier to integrate and reference standard elements in projects.
-
Advanced Filtering: New filters have been added to the Explorer view, allowing users to hide specific elements and libraries, which simplifies the interface and focuses on relevant data.
-
Import Capabilities: Additionally, SysML v2 textual files can now be imported directly, enhancing data integration and compatibility with other tools.
-
Enhanced Diagram Development: We’ve restructured and streamlined our diagrams implementation, including the introduction of specific modules and tools for better cross-diagram functionality. This ensures that all graphical representations are more cohesive and easier to maintain.
Breaking changes
-
Node Descriptions Providers in General View has been modified with mainly rename of these providers to match with all
Definitions
andUsages
Node Descriptions. -
After switch to Sirius Web v2024.3.0,
GeneralViewRegistryConfigurer
has been renamed toGeneralViewDescriptionProvider
.SysMLv2ObjectService
has been renamed intoSysMLv2LabelService
as it now implementsILabelServiceDelegate
instead ofIObjectServiceDelegate
. -
Refactor diagrams code with creation of the diagram-common-view module to gather all cross diagram tools and there is now one name generator per diagram owning the diagram prefix used to prefix all descriptions for this diagram.
Dependencies update
-
commons-io 2.11.0
dependency has been explicitly added insyson-application-configuration
. -
Switch to Sirius Web v2024.3.0
Improvements
-
By activating direct Edit, User can now change the name/type/value/range of an element without any lost. The direct edit of labels in diagrams now handles partial edition.
-
When user wants to create new elements under a selected element, only provides candidates that will make sense are proposed among new objects candidates in Explorer view menu. The creation of elements with their containing
Membership
is now done in one click.
-
A recursive version of the
Add existing elements
tool is now available to display all the cluster of objects contained in a selected node.
-
Package
node headers' width has been improved to better handle longer labels.
-
It’s now impossible to have Package children overlapping the
Package
node body’s west border. -
All KerML and SysML standard libraries have been added in project definition. These libraries aren’t visible in the Explorer. Users can reference these libraries elements from the Details view or through the direct edit of elements in diagrams.
-
Tools names have been renamed by adding spaces between type words and removing "Usage" from tool names.
-
User can now create elements inside list compartments via the containing node’s palette and the new element is created inside the correct compartment.
-
General View diagram palette has been reorganized. New tool sections have been added to group semantically node tools by creation concept.
-
In the Details view, standard libraries are now displayed in Reference Widget’s model browser dialog.
-
getAllReachable()
util service used to retrieve the elements of a given type has been improved to reduce its time execution. -
FeatureTyping Edge creation tool has been added to set the type of a Usage.
-
Add kind property from RequirementConstraintMembership on Constraint core properties.
New features
-
A new filter
Hide Memberships
has been added in Explorer view toolbar to hide membership elements in the Explorer view. -
A new filter
Hide KerML Standard Libraries
has been added in Explorer view toolbar to hide KerML/SysML libraries in the Explorer view.
-
Action Flow View
diagrams are now available on Package elements. -
Requirement view
diagrams are now available on Package elements. -
It’s now possible to import SysMLv2 textual files into SysON, through the existing document upload modal.
2024.1.0
Key highlights
-
Expanded Library Access: We now support a wider range of standard libraries.
-
User-Friendly Diagrams: We’ve introduced helpful background messages for empty diagrams, making it easier for users to understand and use the tool right from the start.
Breaking changes
-
All
findUsageByName
andfindDefinitionByName
method have been replaced by the newfindByNameAndType
inorg.eclipse.syson.services.UtilService
. -
Delete useless fork of
UploadDocumentEventHandler
andDocumentController
from Sirius Web.
Dependencies update
-
Switch to Sirius Web v2024.1.1
-
SysON SysMLv2 metamodel module now depends on
org.eclipse.emf.ecore.xmi
andjava-uuid-generator
. -
Switch to vite 4.5.2
New features
-
Display help background message on empty general-view diagram.
-
Add support for SysMLv2 standard libraries. Some KerML libraries have been added:
Base
,BooleanFunctions
,Clocks
,CollectionFunctions
,Collections
,ComplexFunctions
,ControlFunctions
,DataFunctions
,IntegerFunctions
,KerML
,Links
,NaturalFunctions
,NumericalFunctions
,RationalFunctions
,RealFunctions
,ScalarFunctions
,ScalarValues
,SequenceFunctions
,StringFunctions
,TrigFunctions
,VectorFunctions
,VectorValues
. Some of these libraries might have partial content. -
Add support for automatic imports.
2023.12.0
Key highlights
-
🏆 Initial release!
Dependencies update
SysON is based on:
New and improved
-
Key features: Basic SysML v2 views (General view, Interconnection view), see the Key features section.
-
Installation Instructions: Detailed installation guideline is provided in the project’s documentation, guiding users through the setup process.
-
Documentation: Comprehensive documentation is readily available, covering installation and usage of SysON.
-
Contributing Guidelines: Guidelines are outlined for contributing to the project, including submitting bug reports and feature requests.
-
Contact us: The project’s GitHub repository, issue tracker, and discussion serve as primary channels for communication and support.
We warmly invite users to explore SysON, experiment with its features, and provide valuable feedback to assist us in its continuous improvement.
Know issues
You can find a list of the known issues (with workaround where relevant) being investigated by our engineering team on the SysON Issue Tracker. A detailed list of all project changes is available at: https://github.com/eclipse-syson/syson/blob/main/CHANGELOG.adoc.