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 palette tool
  • 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

Command Palette
  • 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

Libraries Directories in the explorer

Breaking changes

No breaking changes.

Bug fixes

  • Fix textual export of LibraryPackage: the exported file now correctly contains library package <Package Name> instead of package <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.

Namespace import node
  • A new palette is available in SysON, all tools have been organized in sections.

New palette tool

This new palette contains a search bar, allowing to easily retrieve tools by their name.

New palette tool - search bar

Some actions (delete, edit, …​) are also available as shortcuts.

New palette tool - 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 now unsettable and its default value is null 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 and OccurrenceUsage 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 to CaseDefinitionActorsCompartmentNodeDescriptionProvider

    • Rename UseCaseDefinitionObjectiveRequirementCompartmentNodeDescriptionProvider to CaseDefinitionObjectiveRequirementCompartmentNodeDescriptionProvider

    • Rename UseCaseDefinitionSubjectCompartmentNodeDescriptionProvider to CaseDefinitionSubjectCompartmentNodeDescriptionProvider

    • Rename UseCaseUsageActorsCompartmentNodeDescriptionProvider to CaseUsageActorsCompartmentNodeDescriptionProvider

    • Rename UseCaseUsageObjectiveRequirementCompartmentNodeDescriptionProvider to CaseUsageObjectiveRequirementCompartmentNodeDescriptionProvider

    • Rename UseCaseUsageSubjectCompartmentNodeDescriptionProvider to CaseUsageSubjectCompartmentNodeDescriptionProvider

  • 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 to SemanticCheckerService to better separate testing concerns:

    • getElementInParentSemanticChecker

    • checkEditingContext The following methods have been moved from NodeCreationTestsService to DiagramCheckerService to better separate testing concerns:

    • getChildNodeGraphicalChecker

    • getCompartmentNodeGraphicalChecker

    • getSiblingNodeGraphicalChecker

    • checkDiagram

  • Remove default name of relationships and improve edge labels. The method getSuccessionLabel in ViewLabelService has been deleted, succession labels are now computed with the generic getEdgeLabel method.

  • Allow the drop of elements on empty diagram nodes. Rename the class SemanticCheckerFactory to SemanticRunnableFactory 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 of public

    • 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" and export-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 and AllocationDefinition.

  • 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 the Redefinition had no name.

  • Fix an issue where InterfaceUsage and FlowConnectionUsage elements might be created inside the wrong membership in the Interconnection View diagram.

  • Add declaredName attribute in AnnotatingElement (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 subsetted Feature.

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 on PartUsage to create a Subsetting edge and a PartUsage that is subset.

  • Add New Feature Typing tool on PartUsage to create a FeatureTyping edge and a PartDefinition.

  • Add New Binding Connector As Usage tool on PartUsage in Interconnection View diagram.

  • Add New Flow Connection tool on PartUsage in Interconnection View diagram.

  • Add New Interface tool on PartUsage in Interconnection View diagram.

  • Handle UseCaseUsage and IncludeUseCaseUsage 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. The Documentation graphical node can appear when user drag and drop Documentation element from explorer on the diagram. The Documentation 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.

Documentation note node
  • Allow creation of Comment from the Explorer view.

  • Add Comment representation in graphical views. The Comment graphical node can appear when user drag and drop Comment element from explorer on the diagram but also when user handle creation tool from the palette. The Comment 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.

Comment note node
  • Add Comment property to Core tab of the Details view, allowing to add/edit a Comment for the selected element. This property widget will only handle the first Comment associated to the selected element. If no Comment is associated to the selected element, then a new value in this widget will also create a Comment 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.

New objects from text menu

A click on the Insert button converts the textual SysMLv2 into model elements and add them under the selected element.

New objects from text dialog
  • New "Show/Hide Icons in Diagrams" diagram panel entry: from panel in Diagrams, allow to show or hide the icons of diagrams elements.

Show/Hide Icons in Diagram
  • 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.

Show/Hide Inherited Members in Diagram
  • 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.

Show/Hide Inherited Members from Standard Libraries in Diagram

Breaking changes

  • Move StateTransitionCompartmentNodeDescriptionProvider from syson-diagram-statetransition-view to module syson-diagram-common-view.

  • Code refactoring:

    • Rename ExhibitStatesCompartmentItemNodeDescriptionProvider to StatesCompartmentItemNodeDescriptionProvider.

    • 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 and RootDefinitionNodeDescriptionProvider into RootNodeDescriptionProvider

    • Renamed FirstLevelChildPartUsageNodeDescriptionProvider to FirstLevelChildUsageNodeDescriptionProvider

    • Renamed ChildPartUsageNodeDescriptionProvider to ChildUsageNodeDescriptionProvider

  • 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 to StateTransitionViewNodeToolSectionSwitch

  • 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 to ViewToolService since it now requires view-related imports that motivated this refactoring.

    • The method ToolService#dropElementFromDiagram has been moved to ViewToolService 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 by ViewNodeService and ViewToolService):

    • ViewNodeService#getAllStandardStartActions

    • ViewNodeService#getAllStandardDoneActions

    • ViewNodeService#isAction

    • ViewNodeService#isPart

    • Split DiagramDirectEditListener#exitExpression directEdit service into two services : exitNodeExpression and exitListItemExpression to specify the grahical context of use .

    • Add new boolean parameter isCompartmentItem to the LabelService#directEdit service to clarify the graphical element type to edit.

    • Rename LabelService#getUsagePrefix into getUsageListItemPrefix to specify the computation of this prefix on list item elements.

    • Rename ViewLabelService#getInitialDirectEditLabel service into getInitialDirectEditListItemLabel 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 returns true if parent == 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

Nested Usage edge for composite and reference Usage
  • 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.

Qualified names for 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.

Actor node on the General View diagram
  • 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 with ISQBase::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 and Usages 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 and Usages 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).

Show/Hide Icons in Diagram
  • 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.

New objects from text menu

A click on the Insert button converts the textual SysMLv2 into model elements and add them under the selected element.

New objects from text dialog
  • 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.

Show/Hide Inherited Members in Diagram
  • 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.

Show/Hide Inherited Members from Standard Libraries in Diagram

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 as descriptionNameGenerator. Impacted concrete implementations: ActionFlowViewDiagramDescriptionProvider, GeneralViewDiagramDescriptionProvider, InterconnectionViewForDefinitionDiagramDescriptionProvider, InterconnectionViewForUsageDiagramDescriptionProvider, StateTransitionViewDiagramDescriptionProvider.

    • Rename syson-diagram-statetransition-view CompartmentNodeDescriptionProvider as StateTransitionActionsCompartmentNodeDescriptionProvider.

    • StateTransitionViewEdgeService removed, services moved to ViewEdgeService and ViewLabelService.

    • StateTransitionActionToolProvider moved to syson-diagram-common-view

    • StateTransitionCompartmentNodeToolProvider moved to syson-diagram-common-view

    • createState and createOwnedAction services moved to ViewToolService

  • 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 new ToolDescriptionService

    • Move AbstractViewElementDescriptionProvider#addExistingElementsTool(boolean) to new ToolDescriptionService

    • Remove AbstractViewElementDescriptionProvider

    • Move createDropFromExplorerTool to new ToolDescriptionService

    • Move and rename AbstractDiagramDescriptionProvider.addElementsToolSection(IViewDiagramElementFinder) to ToolDescriptionService#addElementsDiagramToolSection()

    • Move and rename AbstractNodeDescriptionProvider#addExistingElementsTool() to ToolDescriptionService#addElementsNodeToolSection()

    • Remove AbstractDiagramDescriptionProvider

    • Rename StateTransitionActionToolProvider to StateTransitionActionCompartmentToolProvider

    • Move AbstractViewNodeToolSectionSwitch#buildCreateSection(NodeTool…​) to ToolDescriptionService#buildCreateSection(NodeTool…​)

    • Merge AbstractViewNodeToolSectionSwitch#addElementsToolSection() and AbstractViewNodeToolSectionSwitch#addExistingNestedElementsTool() in ToolDescriptionService#addElementsNodeToolSection(boolean)

  • ViewLabelService#getCompartmentItemUsageLabel has been renamed to ViewLabelService#getCompartmentItemLabel.

  • ViewLabelService#getUsageInitialDirectEditLabel has been renamed to ViewLabelService#getInitialDirectEditLabel.

  • AbstractViewNodeToolSectionSwitch#createNestedUsageNodeTool has been deleted. Please use ToolDescriptionService#createNodeTool instead

  • AbstractCompartmentNodeDescriptionProvider#getItemCreationToolProvider has been renamed to getItemCreationToolProviders and now returns a list of INodeToolProvider.

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.

Direct edit cardinality
  • Fix an issue where Allocate edges were not displayed in the Action Flow View diagram.

Action Flow View - Allocate edges
  • 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.

Package Adjust size tool
  • 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.

Root Namespace
  • 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.

Details View Transition
  • 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.

Details View Typed by
  • 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

Create Items and Parts in Port and PortDefinition
  • Add tool to create Requirements in RequirementDefinition

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

Visibility icons

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.

Control nodes
  • Handle the ExhibitState elements in diagrams

  • Add new documentation compartment on all existing nodes in all diagrams.

Doc compartment

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.

Attribute compartment from Interconnection view
  • 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 through ownedRelatedElement instead of ownedRelationship reference.

  • Rename action from explorer is now renaming tree items as expected.

  • EnumerationDefinition is now created with a default name.

Enumeration definition node
  • "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).

Restore and Improve hide capabilities
  • 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.

Ends compartment from AllocationDefinition
  • Circular containment of nested parts including self containment are now forbidden.

Avoid nested part cycle
  • Time performance has been improved when using Become nested part edge creation tool.

  • state transition and actions compartments are now available on StateDefinition and StateUsage node.

State transition compartment
  • Inherited features in compartments don’t display itself anymore.

Inherited features in compartments
  • 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 to Core properties in the Details view.

Membership visibility in Details view
  • PortUsage#direction attribute has been added to Core properties in the Details view.

Port direction in 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).

Port label
  • 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.

Reveal compartment
  • 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 and ActionDefinition nodes is now available. Thanks to this compartment, user can separate Action nodes and connect them by using edges.

Action in compartment
  • Remove button is now available on containment edges.

Remove containment edge
  • "Add existing elements" tools have been added on State and StateDefinition graphical elements.

Add existing elements on state

New features

  • Compartments of RequirementDefinition and RequirementUsage have been redesigned to better fit the specification and examples.

Requirements
  • "Become nested" edge creation tools has been added for AttributeUsage, ItemUsage, PartUsage and PortUsage nodes.

Become nested attribute edge tool
  • Creation tools (mainly AttributeUsage, PartUsage, PortUsage ItemUsage) have been added in ActionUsage, ConstraintUsage, InterfaceDefinition, RequirementDefinition and PortUsage.

  • UseCaseDefinition and UseCaseUsage elements are now handled in General view.

Handle Usecase elements
  • Composite edges between Usage and compartment content have been added to link nested Actions with its Action, nested Constraints with its Constraints and nested Constraints with its Requirement.

Nested composite edge
  • OccurrenceDefinition and OccurrenceUsage elements are now handled in General view.

Handle occurrence elements
  • Reconnection tools have been added for composition edges.

  • AllocationDefinition and AllocationUsage elements are now handled in General view.

Handle allocation elements
  • 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.

Interface Usage
  • State Transition view diagrams are now available on Package elements.

  • Inherited features are now taken into account in features compartments.

Inherited feature
  • AcceptAction elements are now handled in General view diagram.

Accept Action Usage
  • PortUsage in Interconnection View are now represented with rotative image. Whatever its border support, the PortUsage node is always represented by an arrow pointing inside the parent node.

Rotative image
  • It’s now possible to represent and handle Succession edges between Actions in General view diagram, from background diagram but also from action flow compartment.

Succession

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 and Usages Node Descriptions.

  • After switch to Sirius Web v2024.3.0, GeneralViewRegistryConfigurer has been renamed to GeneralViewDescriptionProvider. SysMLv2ObjectService has been renamed into SysMLv2LabelService as it now implements ILabelServiceDelegate instead of IObjectServiceDelegate.

  • 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 in syson-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.

Direct edit
  • 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.

Create new Object
  • A recursive version of the Add existing elements tool is now available to display all the cluster of objects contained in a selected node.

Add existing elements (recursive)
  • Package node headers' width has been improved to better handle longer labels.

Package header
  • 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.

Tools name
  • User can now create elements inside list compartments via the containing node’s palette and the new element is created inside the correct compartment.

Creation in compartment
  • General View diagram palette has been reorganized. New tool sections have been added to group semantically node tools by creation concept.

Tool sections
  • In the Details view, standard libraries are now displayed in Reference Widget’s model browser dialog.

Standard libraries in Reference Widget
  • 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.

Feature typing tool
  • 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.

Explorer filters
  • 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 and findDefinitionByName method have been replaced by the new findByNameAndType in org.eclipse.syson.services.UtilService.

  • Delete useless fork of UploadDocumentEventHandler and DocumentController from Sirius Web.

Dependencies update

  • Switch to Sirius Web v2024.1.1

  • SysON SysMLv2 metamodel module now depends on org.eclipse.emf.ecore.xmi and java-uuid-generator.

  • Switch to vite 4.5.2

New features

  • Display help background message on empty general-view diagram.

Diagram help background
  • 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!

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.