Skip to content

Latest commit

 

History

History
1730 lines (1491 loc) · 163 KB

File metadata and controls

1730 lines (1491 loc) · 163 KB

Changelog

v2026.5.0 (work in progress)

Breaking changes

  • SysON now requires Java 21 or later.

  • [cleanup] The definition of the tools specific to the requirements table has been moved to the backend. As a result, the following GraphQL mutations have been removed exposeRequirements and createRequirement.

  • [test] Reduce our call to DiagramNavigator#nodeWithTargetObjectLabel which has been deprecated for removal. + The API of ToolTester#invokeTool and NodeCreationTestsService#createNode has been updated accordingly to take a targetObjectId instead of a label.

  • #2045 [diagrams] The service ViewNodeService#revealCompartment has been changed to reveal a compartment only when it is needed. + Only reveal a compartment of a node when none of the revealed compartment can display the targetElement. + If many compartment candidates exist, choose the first free form compartment.

Dependency update

  • [releng] As of version 2026.5.0, SysON now requires Java 21 or later.

  • [releng] Update to Sirius Web 2026.3.2

  • [releng] Update to jacoco-maven-plugin 0.8.14.

  • [releng] Update to maven-checkstyle-plugin 3.6.0 and CheckStyle 3.13.0.

  • [releng] Update to lexical 0.42.0.

  • [releng] Update to Vite 8.0.1 and @vitejs/plugin-react 6.0.1.

  • [releng] Update to Spring Boot 4.0.5.

  • [releng] Update to com.tngtech.archunit:archunit-junit5 1.4.1.

  • [releng] Update to @mui/material 7.3.10.

  • [releng] Update to @mui/icons-material 7.3.10.

  • [releng] Update to @ObeoNetwork/gantt-task-react 0.6.4.

Bug fixes

  • #2045 [diagrams] In Interconnection View diagrams, fix an issue where the parts compartment of a PartDefinition graphical node was incorrectly revealed when creating a PartUsage from the PartDefinition graphical node, even if the interconnection compartment was already visible.

  • #2094 [libraries] Ensure library documents are read-only.

Improvements

  • #1583 [diagrams] Improve support for Stakeholder. On Requirement or Concern (either definition or usage) graphical nodes it is now possible to create new stakeholders (which must reference existing PartUsage). Stakeholders are by default represented with a dedicated graphical node connected to the parent graphical node, or can appear inside the stakeholders list compartment.

  • [releng] Fix the license and URL of our maven modules in the SBOM

  • #2108 [diagrams] Leverage the latest change of the selection dialog to allow creating an Actor graphical node without specialization.

  • #2111 [diagrams] Leverage the latest change of the selection dialog to allow creating a Stakeholder graphical node without specialization.

  • #2122 [diagrams] Leverage the latest change of the selection dialog to allow creating a Subject graphical node without specialization.

  • #2129 [diagrams] Leverage the latest change of the selection dialog to allow creating a FlowUsage from a ConnectionUsage without selection a PayloadFeature

New features

  • #1979 [diagrams] Add tools to create timeslices and snapshots, available on OccurrenceUsage, ItemUsage, and PartUsage graphical nodes. These tools leverage a selection dialog to either create a specific timeslice/snapshot graphical node or, if no selection is made, default to a timeslice/snapshot OccurrenceUsage graphical node.

v2026.3.0

Breaking changes

  • [sirius-web] SysON is based on Sirius Web, so please also read the breaking changes of Sirius Web.

  • #1861 [publication] Split SysONLibraryPublicationHandler in two distinct classes so the publishing logic can be extended or re-used through the ISysMLLibraryPublisher API.

  • [services] The following methods have been deleted:

    • String getAllReachableExpression(String domainType) in UtilService

    • List<EObject> getAllReachable(EObject eObject, String type) in UtilService

      The following methods have been renamed:

    • List<EObject> getAllReachable(EObject eObject, EClass eClass, boolean withStandardLibs) to List<EObject> getAllReachableType(EObject eObject, EClass eClass, boolean withStandardLibs) in UtilService The following methods have been added:

    • List<EObject> getAllReachableType(EObject eObject, EClass eClass)` in UtilService

  • #1988 [syson] Extract Elasticsearch container initialization in a dedicated abstract test class. The property SysONTestsProperties#ELASTICSEARCH has been removed, tests that require Elasticsearch should extend AbstractIntegrationTestsWithElasticsearch.

  • #2027 [publication] org.eclipse.syson.application.publication.SysONSysMLLibraryPublisher has been reworked to be more extensible. As a result, the following method has been deleted:

    • getDependencies(DependencyGraph<Resource>, Set<Resource>)

      And the following methods have been added:

    • getDependenciesForPublishedLibrary(IEMFEditingContext, Set<Resource>)

    • getDependenciesBasedOnResources(IEMFEditingContext, Set<Resource>)

  • [validation] The following classes have been renamed, and some of them reworked:

    • org.eclipse.syson.sysml.validation.SysMLv2ValidationRules: turned into enumeration org.eclipse.syson.sysml.validation.rules.SysMLValidationRule.

    • org.eclipse.syson.sysml.validation.SysMLv2ValidationService: renamed into org.eclipse.syson.sysml.validation.SysONSysMLValidationService.

    • org.eclipse.syson.sysml.validation.SysMLv2Validator: renamed into org.eclipse.syson.sysml.validation.SysMLValidator.

    • org.eclipse.syson.sysml.validation.ValidationRule: renamed into org.eclipse.syson.sysml.validation.rules.ValidationRule, extracted its methods into interface org.eclipse.syson.sysml.validation.rules.api.ISysMLValidationRule and added int getSeverity() to represent the severity of the rule.

    • org.eclipse.syson.sysml.validation.SysONQueryServices: renamed into org.eclipse.syson.sysml.validation.rules.SysMLValidationRuleQueryServices.

    • org.eclipse.syson.sysml.validation.SysMLv2ValidatorConfiguration: renamed into org.eclipse.syson.sysml.validation.SysMLValidatorRegistrationConfiguration and now expects an injected org.eclipse.syson.sysml.validation.rules.api.ISysMLValidationRulesProvider, for which SysON provides default implementation org.eclipse.syson.sysml.validation.rules.SysONValidationRulesProvider.

  • #2027 [publication] org.eclipse.syson.application.publication.SysONSysMLLibraryPublisher has been reworked to be more extensible. As a result, the following method has been deleted:

    • getDependencies(DependencyGraph<Resource>, Set<Resource>)

      And the following methods have been added:

    • getDependenciesForPublishedLibrary(IEMFEditingContext, Set<Resource>)

    • getDependenciesBasedOnResources(IEMFEditingContext, Set<Resource>)

  • #2037 [export] org.eclipse.syson.sysml.textual.SysMLElementSerializer now takes a org.eclipse.syson.sysml.textual.SysMLSerializingOptions as parameter that gather all serializing options.

  • #5941 [explorer] As a consequence of a Sirius Web change, some SysON Explorer APIs have been updated:

org.eclipse.syson.tree.explorer.services.api.ISysONDefaultExplorerService has a new String getTreeItemTooltip(Object self); method to provide tooltip for tree items in the explorer. org.eclipse.syson.tree.explorer.services.api.ISysONExplorerService has a new String getTreeItemTooltip(Object self); method to provide tooltip for tree items in the explorer. org.eclipse.syson.tree.explorer.services.api.ISysONExplorerServiceDelegate has a new String getTreeItemTooltip(Object self); method to provide tooltip for tree items in the explorer. org.eclipse.syson.tree.explorer.services.api.ISysONExplorerFragment has a new String getTooltip(Object self); method to provide tooltip for tree items in the explorer.

Dependency update

Bug fixes

  • #1847 [export] Textual export duplicates "abstract" keyword for OccurrenceUsage.

  • #1887 [export] Export fails to escape some names when using qualified name.

  • #1953 [import] Fix an issue where TransitionUsage with SendActionUsage were not properly resolved.

  • #1973 [import] Fix an error during textual import when resolving the name of an unnamed redefined Feature.

  • #1860 [diagrams] Add a precondition for compartment item node descriptions in order to filter out unwanted types. For example ViewUsage elements are no longer rendered in parts compartments.

  • #1981 [export] Fix an error during textual export where Expose elements with apostrophes in their name were not properly escaped.

  • #1983 [metamodel] reqId and declaredShortName properties of RequirementDefinition and RequirementUsage are now synchronized, as required by the SysMLv2 specification.

  • #2014 [diagrams] Forbid the expose of a ViewUsage in this same ViewUsage, directly or indirectly (i.e. through others exposed ViewUsages).

  • #1949 [diagrams] Allow redefining a PartUsage with the same name as the redefined usage.

  • #1863 [diagrams] Dropping an elements on a diagram which is already visible gives feedback again.

  • #2026 [explorer] Fix an issue where creating a new model using the Create a new model action in the Explorer view was not adding the ".sysml" extension to the model name.

  • #1998 [metamodel] Missing implicit TypeFeaturing.

  • #2023 [diagrams] On diagrams, ConnectionDefinition graphical nodes are now correctly labelled as «connection def».

  • #2034 [import] Fix textual import to be able to annotate Relationships.

  • #2032 [export] Fix NPE when exporting LiteralString.

  • #2037 [export] Backslashes need to be escaped during textual export in LiteralString.

  • #2039 [import] Import should unescape backslash in LiteralString.

  • #2052 [diagrams] Fix an issue where it was possible to create a SatisfyRequirementUsage from the SatisfyRequirementUsage graphical edge tool with a target that is not a RequirementUsage.

  • #2031 [diagrams] Fix an issue where it was not possible to drag and drop a LibraryPackage from the Explorer to a diagram.

  • #2050 [diagrams] Fix an issue where creating a PerformActionUsage from the ActionUsage graphical node (or any other graphical node that allows to create it) was displaying it in the diagram background and its compartments every time. It now follows the same rule than all other graphical node: if a compartment that can display the new PerformActionUsage is displayed, then the new PerformActionUsage is displayed in this compartment, otherwise it is displayed in the diagram background.

  • #2046 [diagrams] Fix an issue where the creation of a RequirementUsage from a Package graphical node was not revealing it.

  • #1990 [diagrams] Fix the EnumerationDefinition graphical node compartment name to follow the SysMLv2 specification.

  • #2049 [diagrams] Fix the direct edit and the display of ends graphical node elements inside the ends compartment. Now the end keyword is not displayed anymore in the label of these graphical nodes, and the direct edit only allows to edit the name of the end instead of the full label which was confusing for users.

  • #2054 [diagrams] Fix an error when invoking the tools New Start Action or New Done Action from inside a package named Actions.

  • #2057 [diagrams] Fix the support for removing the multiplicity using the direct edit.

  • #1938 [diagrams] Fix an issue where the New Flow (flow) tool between two parameters was broken.

  • #2058 [diagrams] Fix error when importing SysML snippets referencing unknown units which could make the resulting model inconsistent

  • #2053 [diagrams] Prevent incoming and outgoing graphical edges of a graphical ForkNode or JoinNode to point empty space.

  • #2059 [diagrams] Fix an issue where the Add existing elements tool was not working correctly on the action flow compartment of ActionUsage graphical nodes.

  • #2043 [explorer] Prevent user libraries from being moved to the root of the project when a child is created in it.

  • #2056 [diagrams] Fix the user feedback when dropping an Element which is already exposed on a diagram.

  • #2048 [diagrams] Fix an issue where the non-empty compartments of graphical nodes were being displayed when executing the Add existing elements tool.

Improvements

  • #1694 [syson] Customize Elasticsearch indices to work with SysML. SysON now uses its own indexing logic instead of the default one provided by Sirius Web. This allows to limit the size of the indices, and ensure information stored in the indices are useful to perform cross-project search. You can find more information on how to setup Elasticsearch, how elements are mapped to index documents, and how to query them in the documentation.

  • #1861 [publication] Split SysONLibraryPublicationHandler in two distinct classes so the publishing logic can be extended or re-used through the ISysMLLibraryPublisher API.

  • #1895 [export] Implement textual export of StateUsage and StateDefinition.

  • #1870 [diagrams] When dragging some Element into a diagram, hide its graphical node compartments unless it’s an interconnection compartment

  • #1943 [diagrams] Add attributes and doc compartments on ConnectionDefinition graphical nodes.

  • #1946 [diagrams] Add actors compartment on RequirementUsage and RequirementDefinition graphical nodes.

  • #1947 [diagrams] Add subjects as graphical nodes in addition to the existing the subject compartment for CaseUsages, CaseDefinitions, UseCaseUsage, UseCaseDefinitions, RequirementsUsages, RequirementsDefinitions and SatisfyRequirementUsages.

  • #1954 [export] Implement textual export of TransitionUsage.

  • #1966 [export] Implement textual export of ExhibitStateUsage.

  • #1942 [diagrams] Add parts compartment on PartDefinition, ConnectionDefinition, AllocationDefinition and InterfaceDefinition graphical nodes.

  • #1962 [diagrams] Add graphical edge tools to add an AttributeUsage as a nested attribute of a Usage or a Definition. Also, add a graphical edge tool to all Usage and Definition to make an AttributeUsage nested.

  • #1649 [syson] Add support for publishing representations with libraries. Publishing a project that contains representations now produces libraries that also contain the representations.

  • #1970 [export] Implement textual export of AllocationUsage and AllocationDefinition.

  • #1948 [diagrams] Add New Satisfy tool on RequirementUsage graphical nodes. This tool allows to create a SatisfyRequirementUsage on the selected RequirementUsage. Also add a New Satisfy Requirement graphical edge tool between Feature graphical nodes and RequirementUsage graphical nodes.

  • #1986 [services] Make ServiceMethod#aql and ServiceMethod#aqlSelf throw an exception if the provided parameters don’t match the service method arity. As a result, the application won’t start if a service call is constructed with an invalid number of arguments.

  • #1988 [syson] Extract Elasticsearch container initialization in a dedicated abstract test class. Integration tests that require Elasticsearch now need to extend AbstractIntegrationTestsWithElasticsearch.

  • #1983 [details] reqId property of RequirementDefinition is now visible in the Core tab of the Details view.

  • #1945 [diagrams] Add ends compartment on AllocationDefinition and ConnectionDefinition graphical nodes. Newly created AllocationDefinition and ConnectionDefinition graphical nodes now have two initial connection ends, named source and target. Additional ends can be created using the New end graphical node tool (which replaces the New Part as end previously available only on AllocationDefinition graphical nodes).

  • #1972 [diagrams] Add ends compartment on InterfaceDefinition graphical node. Newly created InterfaceDefinition graphical nodes now have two initial ports named source and target. Additional ports can be created using the New Port as end graphical node tool.

  • #2004 [diagrams] The ports and ends compartments on a newly created InterfaceDefinition graphical nodes are not visible by default. They can be revealed if needed using the Manage Visibility action on the graphical node.

  • #2003 [diagrams] Rework the way New Binding Connector As Usage (bind), New Flow (flow) and New Interface (interface) graphical edge tools works. Previously, when a binding/interface/flow graphical edge tool was executed, if it involves an inherited feature(s) (as source and/or target of the tool), then the inherited feature(s) were redefined first. Instead SysON will now use the inherited elements without redefining them first, as it is done by the New Connection (connect) edge tool.

  • 1994 [syson] Add support for excluding libraries in the Search view. The Search in libraries toggle in the Search view allows to include elements from user and standard libraries in the search. This toggle is de-activated by default.

  • #2011 [validation] Improve SysML validation to be more modular: Add interface ISysMLValidationRulesProvider in charge of providing the validation rules to execute on SysML models. The default implementation, SysONValidationRulesProvider always provides all validation rules from the SysML specification. Downstream applications can override this to choose (possibly dynamically) which rules get executed. Add interface ISysMLValidationRule for the validation rules supported by our validation service, so downstream applications can easily execute their custom rules without having to implement their own service. The SysML validation rules from the specification have been turned into literals of enumeration SysMLValidationRule that implements this interface. Add a few simple unit tests to help maintain this enumeration. Add possibility for validation rules to specify their severity ; the SysML rules from the specification remain as WARNINGs for now. Tweak the diagnostic messages to help users understand where the erroneous element is in their editing context. Make sure diagnostics are sorted according to their validated element and its containing document.

  • #2042 [import] Improve error reporting while uploading a document.

  • #2057 [diagrams] Add the support for empty value for multiplicity in the ANTLR grammar.

  • #2053 [diagrams] The graphical ForkNode and JoinNode now use RectangularNodeStyleDescription and are restricted to horizontal resizing. Consequently, their entire footprint is filled with black, ensuring that all incoming and outgoing edges maintain a valid connection point.

  • #2085 [views-explorer] Adapt views explorer to group diagram representations by view definition.

New features

  • #1977 [diagram] Display the timeslice and snapshot prefixes in the label of OccurrenceUsage graphical nodes and some of the graphical nodes representing subclasses of OccurrenceUsage.

  • #1977 [metamodel] Ensure a timeSlice or a snapshot OccurrenceUsage implicitly specializes Occurrences::Occurrence::timeSlices or Occurrences::Occurrence::snapshots, directly or indirectly.

  • #1978 [diagram] Allow to edit the timeslice and snapshot properties of OccurrenceUsage graphical nodes (and all its subtypes such as PartUsage, ItemUsage, …​) with the direct edit.

v2026.1.0

Shapes

  • #1694 Customize Elasticsearch index to work with SysML metamodel

Breaking changes

  • [sirius-web] SysON is based on Sirius Web, so please also read the breaking changes of Sirius Web.

  • [services] move the following methods from DescriptionNameGenerator to default methods in IDescriptionNameGenerator:

    • String getName(String prefix, String descType, String suffix)

    • String getNodeName(String prefix, String suffix)

    • String getBorderNodeName(String prefix, String suffix)

    • String getInheritedBorderNodeName(String prefix, String suffix)

    • String getCompartmentName(String prefix, String suffix)

    • String getCompartmentItemName(String prefix, String suffix)

    • String getInheritedCompartmentItemName(String prefix, String suffix)

    • String getEdgeName(String prefix, String suffix)

  • [services] MetamodelElementQueryService has been renamed to MetamodelQueryElementService.

  • [services] In order to match the new service architecture the following methods has been moved:

    • ViewCreateService.createPartUsageAndBindingConnectorAsUsage(PartUsage self) to ModelMutationElementService.createPartUsageAndBindingConnectorAsUsage(PartUsage self)

    • ViewCreateService.createPartUsageAndFlowConnection(PartUsage self) to ModelMutationElementService.createPartUsageAndFlowConnection(PartUsage self)

    • ViewCreateService.createPartUsageAndInterface(PartUsage self) to ModelMutationElementService.createPartUsageAndInterface(PartUsage self)

    • ViewEdgeService.getTarget(ConnectorAsUsage connector) to MetamodelElementQueryService.getTarget(ConnectorAsUsage connector)

    • ViewEdgeService.getSource(ConnectorAsUsage connector) to MetamodelElementQueryService.getSource(ConnectorAsUsage connector)

    • ViewEdgeService.reconnectSource(ConnectorAsUsage bind, Feature newSource) to DiagramMutationElementService.reconnectSource(ConnectorAsUsage connectorAsUsage, Feature newSource, Node sourceNode, Node targetNode, IEditingContext editingContext, Diagram diagram)

    • ViewEdgeService.reconnectTarget(ConnectorAsUsage bind, Feature newTarget) to DiagramMutationElementService.reconnectTarget(ConnectorAsUsage connectorAsUsage, Feature newTarget, Node sourceNode, Node targetNode, IEditingContext editingContext, Diagram diagram)

    • UtilService.createFlowConnectionEnd(Feature targetedFeature) to MetamodelMutationElementService.createFlowConnectionEnd(Feature targetedFeature)

    • UtilService.setConnectorEnds(ConnectorAsUsage connectorAsUsage, Feature source, Feature target, Type connectorContainer) to MetamodelMutationElementService.setConnectorEnds(ConnectorAsUsage connectorAsUsage, Feature source, Feature target, Element connectorContainer)

Note
The signature of the reconnectSource and reconnect_Target now takes graphical nodes as inputs. It helps handling inherited elements that are not displayed in their semantic owner.

Dependency update

Bug fixes

  • #1698 [explorer] Discard non-Namespace elements to compute whether a model is a user library. This fix ensure that imported models containing, for example, a top-level LibraryPackage and a top-level Comment is correctly displayed under the User libraries directory.

  • #1798 [explorer] Fix an issue where a document with no content was wrongly categorized as a user library.

  • #1751 [diagrams] Make Interconnection compartment growable.

  • #1763 [diagrams] Fix an issue where, in the diagrams, the creation of an Element inside a sub-Package created two graphical nodes instead of one.

  • #1788 [services] New Expose elements now have visibility set to protected and have isImportAll set to true, as required by the SysMLv2 specification, chapter 8.3.26.2 Expose.

  • #1799 [export] During export, Element with a name that conflicts with SysML Keyword should be escaped.

  • #1825 [export] LiteralRational value wrongly rounded during textual export.

  • #1784 [export] Error while exporting FeatureValue using enumeration literals.

  • #1838 [metamodel] Invalid computation of Usage.getType: The subsetted features should be taken into account.

  • #1852 [diagrams] Do not propose the Duplicate Element node action on elements which do not support it.

  • #1857 [diagrams] Fix an issue where existing graphical node could disappear when new graphical node was created.

  • #1865 [explorer] Fix focus loss on some characters in the New object from text modal.

  • #1876 [explorer] Fix potential NPE when trying to delete elements with associated EAnnotations from the Explorer.

  • #1858 [diagrams] Fix an issue where a new graphical node could be located inside the wrong graphical container.

  • #1859 [diagrams] Fix an issue where the creation of an ItemUsage from an ActionUsage or an ActionDefinition graphical node was not revealing it.

  • #1869 [diagrams] When creating a Do action with referenced action on a StateUsage, ensure the corresponding compartments are revealed.

Improvements

  • #1666 [export] Export SatisfyRequirementUsage in textual format.

  • #1653 [services] Improve service for creating root objects in a document so that it delegates non-SysML scenarios to the default service implementation.

  • #1735 [diagrams] Improve the performances of the visibility menu actions

  • #1702 [libraries] Provide a SysON version of the impact analysis tree.

  • #1746 [diagrams] When attempting to create a redundant FeatureTyping between elements which already have one, an informative message is displayed instead.

  • #1766 [diagrams] Also prevent the creation of redundant Subsetting, Redefinition and Subclassifications

  • #1765 [diagrams] Allow to create a SatisfyRequirement on PartDefinition or PartUsage. A new compartment named satisfy requirements has also been added to PartDefinition and PartUsage graphical nodes in diagrams.

  • #1762 [diagrams] Increase the default size of nodes.

  • #1752 [diagrams] In diagrams, hide the node displayed on the top of the diagram if the candidate compartment is not hidden.

  • #1778 [diagrams] Add new ReferenceSubsetting tool to create ReferenceSubsetting relationships between Usage elements in diagrams.

  • #1790 [explorer] Add a condition to apply filters only to the SysON explorer.

  • #1806 [diagrams] On Interconnection View diagrams, it is now possible to create and see SatisfyRequirementUsage graphical nodes in the interconnection compartment.

  • #1796 [services] Remove duplicated code for diagram and ViewUsage creation.

  • #1809 [diagrams] In diagrams, it is now possible to create, edit and see Documentation in the objective compartment of CaseUsage, CaseDefinition, UseCaseUsage and UseCaseDefinition graphical nodes.

  • #1820 [services] Allow New Subject tool to select a Type instead of a Usage.

  • #1822 [services] Allow New Actor tool to select PartDefinition in addition to PartUsage.

  • #1835 [diagrams] Align the size of NamespaceImport graphical node with the size of Package graphical node.

  • #1831 [export] Improve textual export performance by keeping a cache Membership computations.

  • #1818 [diagrams] On Interconnection View diagrams, the top-level palette no longer proposes to create Attributes and Ports, which can not actually be displayed on the diagram’s background. The tools are still available in the palette of e.g. Parts.

  • #1819 [diagrams] In diagrams, when using direct edit tool, you can now set a multiplicity range part [n..n] after or before a typing part, subsetting part or redefinition part.

New features

  • #1565 Provide a way to duplicate semantic element in the Explorer view.

  • #1737 [diagrams] Add creation tools to InterconnectionCompartmentNode

  • #1395 Provide a way to duplicate a semantic element ans its representation node in the General View diagram.

  • #1740 [diagrams] Add items compartment and graphical border node on PortDefinition graphical nodes in the General View diagram.

  • #1786 [export] Implement textual export of RequirementConstraintMembership.

  • #1740 [services] Add IDetailViewHelpTextProvider service in order to add help text to properties widgets

  • #1738 [diagrams] Add ConnectionUsage as edges in General View diagram.

  • #1747 [diagrams] Most new elements created by invoking a tool on a diagram are now automatically selected

  • #1773 [diagrams] Add items graphical border node on PortUsage graphical nodes in the General View diagram.

  • #1772 [diagrams] Add items compartment on PortUsage graphical nodes in the General View diagram.

  • #1770 [diagrams] Add IDirectEditNameSpaceProvider to provide default namespace provider, an implementation allows to look for symbols in the SI namespace.

  • #1813 [diagrams] Add creation tool for Comment graphical nodes in the General View diagram background.

  • #1828 [metamodel] Implement missing derived references of UseCaseUsage and UseCaseDefinition.

  • #1819 [diagrams] Add DiagramDirectEditErrorListener in order to send syntax error thrown by ANTLR to the direct edit mutation.

  • #1864 [diagrams] The DiagramDirectEditErrorListener no longer send the syntax error to the user but log it instead.

v2025.12.0

Shapes

  • #1581 [diagrams] Display inherited ports as border nodes in diagrams.

Architectural decision records

  • [ADR-002] Services organization

Breaking changes

  • #1628 [services] Introduce new services organization. See the developer guide in the documentation for more details. Also introduces new ServiceMethod helper class to build AQL service call expressions from type-safe Java method references instead of hardcoded strings.

  • [services] isActor(Element) has been moved from ViewNodeService to MetamodelElementQueryService.

  • [services] The following services have been moved from LabelService and ViewLabelService to DiagramQueryLabelService:

    • String getBorderNodeUsageLabel(Usage usage)

    • String getCompartmentItemLabel(Documentation documentation)

    • String getCompartmentItemLabel(Usage usage)

    • String getContainerLabel(Element element)

    • String getDefaultInitialDirectEditLabel(Comment comment)

    • String getDefaultInitialDirectEditLabel(Element element)

    • String getDefaultInitialDirectEditLabel(TextualRepresentation textualRepresentation)

    • String getDependencyLabel(Dependency dependency)

    • String getEdgeLabel(Element element)

    • String getInitialDirectEditListItemLabel(Documentation documentation)

    • String getInitialDirectEditListItemLabel(Comment comment)

    • String getInitialDirectEditListItemLabel(Usage usage)

    • String getMultiplicityLabel(Element element)

    • String getTransitionLabel(TransitionUsage transition)

  • #1638 [services] The following services have been moved from LabelService and ViewLabelService to DiagramMutationLabelService:

    • Element directEdit(Element element, String newLabel)

    • Element directEdit(Element element, String newLabel, String…​ options)

    • Element directEdit(Element element, String newLabel, boolean isCompartmentItem, String…​ options)

    • Element directEditNode(Element element, String newLabel)

    • Element directEditListItem(Element element, String newLabel)

    • Element editMultiplicityRangeCenterLabel(Element element, String newLabel)

    • Element editEdgeCenterLabel(Element element, String newLabel)

  • #1638 [services] The following services have been moved from ToolService and ViewToolService to DiagramMutationExposeService:

    • Element addToExposedElements(Element element, boolean recursive, IEditingContext editingContext, DiagramContext diagramContext, Node selectedNode, Map<NodeDescription, NodeDescription> convertedNodes)

    • Element expose(Element element, IEditingContext editingContext, DiagramContext diagramContext, Node selectedNode, Map<NodeDescription, NodeDescription> convertedNodes)

    • boolean removeFromExposedElements(Element element, Node selectedNode, IEditingContext editingContext, DiagramContext diagramContext)

  • #1638 [services] The following services have been moved from ToolService and ViewToolService to DiagramMutationDndService:

    • Element dropElementFromExplorer(Element element, IEditingContext editingContext, DiagramContext diagramContext, Node selectedNode, Map<NodeDescription, NodeDescription> convertedNodes)

    • Element dropElementFromDiagram(Element droppedElement, Node droppedNode, Element targetElement, Node targetNode, IEditingContext editingContext, DiagramContext diagramContext, Map<NodeDescription, NodeDescription> convertedNodes)

    • Element dropSubjectFromDiagram(Element droppedElement, Node droppedNode, Element targetElement, Node targetNode, IEditingContext editingContext, DiagramContext diagramContext, Map<NodeDescription, NodeDescription> convertedNodes)

    • Element dropObjectiveRequirementFromDiagram(Element droppedElement, Node droppedNode, Element targetElement, Node targetNode, IEditingContext editingContext, DiagramContext diagramContext, Map<NodeDescription, NodeDescription> convertedNodes)

    • Element dropElementFromDiagramInRequirementAssumeConstraintCompartment(Element droppedElement, Node droppedNode, Element targetElement, Node targetNode, IEditingContext editingContext, DiagramContext diagramContext, Map<NodeDescription, NodeDescription> convertedNodes)

    • Element dropElementFromDiagramInRequirementRequireConstraintCompartment(Element droppedElement, Node droppedNode, Element targetElement, Node targetNode, IEditingContext editingContext, DiagramContext diagramContext, Map<NodeDescription, NodeDescription> convertedNodes)

    • Element dropElementFromDiagramInConstraintCompartment(Element droppedElement, Node droppedNode, Element targetElement, Node targetNode, IEditingContext editingContext, DiagramContext diagramContext, Map<NodeDescription, NodeDescription> convertedNodes)

  • [services] The following services have been moved from ToolService and ViewToolService to DiagramMutationElementService:

    • StateUsage createChildState(Element parentState, IEditingContext editingContext, DiagramContext diagramContext, Node selectedNode,Map<NodeDescription, NodeDescription> convertedNodes, boolean isParallel, boolean isExhibit)

  • [services] The following services have been moved from ViewCreateService to MetamodelMutationElementService:

    • Membership createMembership(Element element)

  • [services] The following services have been moved from ViewNodeService to ModelMutationElementService:

    • Element setAsView(ViewUsage viewUsage, String newViewDefinition)

  • #1609 [services] Update the explorer services to match the new infrastructure.

    • ISysONExplorerService, ISysONExplorerServiceDelegate, ISysONExplorerFragment, ISysONExplorerFilterService, ISysONDefaultExplorerService have been moved to the org.eclipse.syson.tree.explorer.services.api package of syson-tree-services.

    • ComposedSysONExplorerService, SysONDefaultExplorerServices, SysONExplorerFilterService have been moved to the org.eclipse.syson.tree.explorer.services package of syson-tree-services.

    • KerMLStandardLibraryDirectory, LibrariesDirectory, SysMLStandardLibraryDirectory, UserLibrariesDirectory have been moved to the org.eclipse.syson.tree.explorer.fragments package of syson-tree-services.

    • HideExposeElementsTreeItemAlteredContentProvider, HideKerMLStandardLibrariesTreeAlteredContentProvider, HideMembershipsTreeItemAlteredContentProvider, HideRootNamespaceTreeItemAlteredContentProvider, HideSysMLStandardLibrariesTreeAlteredContentProvider, HideUserLibrariesTreeAlteredContentProvider, SysONTreeFilterProvider have been moved to the org.eclipse.syson.tree.explorer.filters package of syson-tree-services.

  • #1166 [explorer] Fix library workbench to always displays the current library at the root of the explorer.

    • ISysONService#isImported and ISysONService#isFromReferencedLibrary now require an IEditingContext parameter

    • ISysONExplorerFilterService#isUserLibrary, ISysONExplorerFilterService#hideUserLibraries, and ISysONExplorerFilterService#applyFilters now require an IEditingContext parameter.

  • [explorer] NEW_OBJECTS_FROM_TEXT_MENU_ENTRY_CONTRIBUTION_ID constant has been moved from org.eclipse.syson.tree.explorer.view.SysONExplorerTreeDescriptionProvider to org.eclipse.syson.tree.explorer.view.menu.context.SysONExplorerTreeItemContextMenuEntryProvider. SysONDocumentTreeItemContextMenuContribution and SysONObjectTreeItemContextMenuContribution frontend components have been deleted. SysON now uses the Sirius-Web implementations of these components.

Dependency update

Bug fixes

  • #1604 [export] Fix an issue where the Imports located in the root Namespace were not exported in the textual format.

  • #1602 [diagrams] Fix an issue where the drag and drop of a RequirementUsage (or any other Element) with a declared short name but no declared name from the Explorer view to a diagram was not possible.

  • #1581 [diagrams] Remove rename and delete tools from inherited port palette.

  • #1611 [services] Fix an issue where the undo of the deletion of a graphical node in a diagram was not restoring the graphical node correctly.

  • #1618 [rest-apis] Fix an issue where the eAnnotations reference coming from the Ecore metamodel was taking into account by REST APIs serialization.

  • #1621 [diagrams] Fix an issue where the creation of a Package inside another Package created the Package at the root of the diagram in addition to the inside of the target Package.

  • #1617 [import] Fix incorrect resolution of redefined feature on Redefinitions during textual import.

  • #1627 [import] [export] Fix invalid textual import/export of LiteralRational.

  • #1634 [export] Redefining an AttributeUsage with a shortName does not properly export to the textual format.

  • #1640 [export] Properly handle UnaryOperator during textual export.

  • #1643 [export] Textual export fails to serialize a reference to an Element having only a shortName (no declaredName).

  • #1166 [explorer] Fix library workbench to always displays the current library at the root of the explorer. Libraries containing only LibraryPackage instances were previously displayed under the User libraries directory.

  • #1664 [diagrams] Fix an issue where the creation of some elements inside a ViewUsage graphical node was creating the element at the root of the diagram instead of inside the ViewUsage graphical node.

  • #1679 [validation] Fix AQL errors on several validation rules.

  • #1680 [explorer] Fix an error where the creation of a ViewUsage from the Explorer view was not typing the ViewUsage with the selected ViewDefinition.

  • #1683 [diagrams] Fix an error where the creation of a NamespaceImport graphical node as first element in a diagram was not hiding "Add your first element" graphical node.

  • #1688 [details] Fix an error where the reference widget 's object selection popup was switching from many-valuated to mono-valuated UI when selecting an element on the Typed By property on Feature elements.

Improvements

  • #1620 [services] Handle short names in qualified names when direct editing.

  • #1636 [export] Implement OperationExpression using operator 'meta'.

  • #1647 [import] Textual import should enforce Feature reference as memberFeature in EndFeatureMembership to have isEnd set to true.

  • #1642 [export] Export ConnectionUsage in textual format.

  • #1609 [explorer] Rework how the explorer displays libraries. The explorer now displays imported-by-reference libraries that only contain LibraryPackage in the User libraries directory. Other libraries are always displayed at the root of the explorer. The explorer now appends [read-only] to read-only models and the KerML and SysML directories. The explorer now appends library-name@library-version to imported-by-reference library models.

  • #1661 [frontend] Extract the frontend extension registry in a separate file and move it from syson to syson-components frontend module in order to be easily used by downstream applications.

  • #1681 [diagrams] Improve the way Elements are displayed in the General View diagram by not display them twice. The new behavior is the following: by default, when no compartment is displayed inside a graphical node, the creation of a nested Element from the graphical node displays it on the diagram background and links it with the graphical node through a composition graphical edge. Then, when any compartment inside a graphical node A containing a nested graphical node B is displayed, then any graphical node representing B and linked to graphical node A through a composition graphical edge disappear. When a drag and drop of an Element is made from the Explorer view, the same behavior is applied: if the target graphical node has no candidate compartment displayed, then the dropped Element is created on the diagram background and linked to the target graphical node through a composition graphical edge. If any visible compartment inside the existing graphical node corresponding the semantic parent of the dropped Element is displayed, then the dropped Element is created inside the target graphical node’s compartment as a nested graphical node. In addition, two new tools are added to the palette of the General View diagram:

    • Show content as Nested: allows to hide all graphical nodes linked to the selected graphical node through a composition graphical edge and show them as nested graphical nodes inside the selected graphical node.

    • Show content as Tree: allows to show all nested graphical nodes inside the selected graphical node into graphical nodes linked to the selected graphical node through a composition graphical edge and hide them as nested graphical nodes inside the selected graphical node.

  • #1684 [diagrams] When a ViewUsage is created from any standard diagram, then a diagram is now created and associated to this ViewUsage.

  • #1682 [explorer] Allow the creation of InterconnectionView diagrams from Packages elements.

  • #1685 [explorer] Forbid the creation of a standard diagram on a ViewUsage with a standard diagram. Remove the Delete tool from the context menu of a standard diagram. Users will have to delete the ViewUsage from the Explorer view to delete the associated diagram. Remove the Duplicate tool from the context menu of a standard diagram.

  • #1686 [diagrams] Add New Documentation tool on Package graphical nodes in standard diagrams.

  • #1689 [diagrams] Do not display ports compartment when a PortUsage is created from any graphical node in standard diagrams.

New features

  • #1581 [diagrams] Display inherited PortUsages as graphical border nodes in diagrams.

  • #1581 [diagrams] Redefine inherited PortUsages when connected as graphical border nodes.

  • #1589 [explorer] Add a filter to hide expose elements in ViewUsage.

  • #1587 [diagrams] Handle ActionUsage and ActionDefinition parameters as graphical border nodes.

  • #1628 [services] Introduce new services organization. See the developer guide in the documentation for more details. Also introduces new ServiceMethod helper class to build AQL service call expressions from type-safe Java method references instead of hardcoded strings.

  • #1606 [explorer] Display the shortName of Elements as part of the label in the Explorer view.

  • #1638 [diagrams] Add the capability to put an Element graphical node inside a ViewUsage in diagrams

  • #1584 [diagram] Add a "parts" compartment in diagrams (hidden by default)

v2025.10.0

Breaking changes

  • #1314 [diagrams] (Almost) All node descriptions are now synchronized (based on the exposed elements of ViewUsages). This contribution allows to switch from one ViewDefinition to another one in a ViewUsage without having to re-create the diagram.

The following modules have been deleted:

  • syson-diagram-general-view

  • syson-diagram-interconnection-view

  • syson-diagram-actionflow-view

  • syson-diagram-statetransition-view

New syson-standard-diagrams-view module handles all the graphical nodes and edges of the previous modules.

All existing diagrams of these modules are automatically migrated to the remaining syson-standard-diagrams-view module. During this migration, you may lost some graphical nodes and edges that were not handled by the synchronization mechanism.

This contribution introduces some breaking changes:

  • AllocationUsageNodeDescriptionProvider has been deleted. It is now handled as any other UsageNodeDescriptionProvider.

  • UsageNestedActionUsageEdgeDescriptionProvider has been deleted. It is now handled as any other UsageNestedUsageEdgeDescriptionProvider.

  • SynchronizeExposedElementsInputProcessor, SynchronizedExposedElementsEventHandler and SynchronizedExposedElementsDiagramInput have been deleted. With the new synchronization mechanism, it is no longer necessary to manually synchronize the exposed elements of a ViewUsage with graphical nodes of its associated diagram.

  • In ViewCreateService

    • getDiagramEmptyCandidate has been deleted

  • In ViewEdgeService

    • getAllReachableAllocationUsages has been deleted

  • In ViewNodeService

    • getAllReferencingPerformActionUsages has been deleted

    • getAllReachableActors has been deleted

  • In ViewToolService

    • addExistingElements has been deleted and replaced by addToExposedElements

    • createTransitionUsage has been moved to ViewCreateService

    • createViewInFreeFormCompartment has been deleted

  • In ToolService

    • updateExposedElements has been deleted and replaced by ViewToolService#expose

  • NodeCreationTester has been renamed to ToolTester

    • #1497 [database] Update the PostgreSQL version used in the docker image (used for tests purposes) to 15. If you are using the docker image and want to upgrade to PostgreSQL 15, please refer to the migration process page of the official documentation. Also please remember only YEAR.MONTH.0 versions are stable and suitable for production deployments. Other versions, such as intermediate releases, are intended solely for testing purposes.

    • #1432 [metamodel] ImplicitSpecializationSwitch now requires an ILibraryNamespaceProvider to access element from LibraryPackage. A default implementation is given with org.eclipse.syson.sysml.helper.ImplicitSpecializationSwitch. This new object offers a way to register immutable LibraryPackage. Any Namespace stored in those libraries are now cached for quick access.

    • #1355 [tests] Add coding rules tests on all modules. As a consequence, some coding rules violations have been fixed. The org.eclipse.syson.services.grammars package in syson-direct-edit-grammar has been renamed into org.eclipse.syson.direct.edit.grammars. AbtractItemUsageBorderNodeDescriptionProvider has been renamed to AbstractItemUsageBorderNodeDescriptionProvider.

    • #1532 [tables] Add new Requirements table View. As a consequence, the syson-table-requirements-view and syson-common-view modules has been created. IViewDescriptionProvider.java and SysONViewDescriptionProvider.java have been moved from syson-diagram-common-view to syson-common-view. GetIntermediateContainerCreationSwitch.java has been moved from syson-application-configuration to syson-services.

    • #1245 [syson] Standardize read-only computation. The class SysMLReadOnlyService and the interface ISysMLReadOnlyService have been removed, use IReadOnlyObjectPredicate instead.

    • #1546 [diagrams] Fix drag and drop of a graphical node from the diagram background into a Package graphical node. As a consequence, the ViewToolService#expose method has been moved into ToolService.java and NodeFinder.java has been moved from syson-diagram-common-view to syson-services.

Dependency update

  • [releng] Update to Sirius Web 2025.10.0

  • [releng] Update to Spring Boot 3.5.5

  • [releng] Update to vite 7.1.1 and @vitejs/plugin-react 5.0.0

  • [releng] Update to vitest 3.2.4 and @vitest/coverage-v8 3.2.4

  • [releng] Update to @types/node 22.16.0 to match the version of node that we are using

Bug fixes

  • #1454 [import] Fix an issue where importing textual models with MetadataAccessExpression failed.

  • #1487 [explorer] Fix NPE thrown by getTreePath on Explorers defined with Sirius Tree APIs instead of Sirius View DSL APIs. This issue was not visible in SysON but could appear in downstream applications defining explorers with the Sirius Tree APIs.

  • #1509 [publication] Fix library update performance and ensure it does not impact standard libraries.

  • #1507 [publication] The bump to Sirius Web 2025.8.3 revealed an issue with the way UpdateLibraryExecutor looks for proxies in the resource set. SysONUpdateLibraryExecutor was introduced to fix this issue. Now it has been fixed in Sirius Web 2025.8.4, SysONUpdateLibraryExecutor has been deleted and UpdateLibraryExecutor is used again.

  • #1522 [diagrams] To avoid edge blinking when refreshing the diagram, we need to set the properties measured.height and measured.width with the value of the node layout data when converting a custom node accordingly to the xyflow documentation.

  • #1545 [diagrams] Add interconnection compartment to PartDefinition nodes in the standard diagrams.

  • #1546 [diagrams] Fix drag and drop of a graphical node from the diagram background into a Package graphical node.

  • #1550 [diagrams] Fix an issue where the action flow compartment was not revealed when the New Start Action was executed.

  • #1547 [diagrams] Fix an issue where the Delete from diagram action did nothing on elements inside a Package in diagrams.

  • #1567 [diagrams] Fix an issue where a PartUsage contained in a PartUsage contained in a Package was not displayed, even though it was exposed in the ViewUsage corresponding to the diagram. PartUsage is just one example, but the same issue could appear with any other Element contained in Element contained in a Package.

  • #1579 [diagrams] Fix an issue where the action flow compartment was not revealed when the New Decision/New Fork/New Join/New Merge tools were executed.

Improvements

  • #1452 [explorer] Contextual menu action "New objects from text" is now defined in the backend. By default, it no longer appears for non-SysML semantic model elements. Consumers may override this by providing an implementation of org.eclipse.syson.tree.explorer.view.services.api.ISysONExplorerServiceDelegate.canCreateNewObjectsFromText(Object).

  • #1497 [database] Update the PostgreSQL version used in the docker image (used for tests purposes) to 15.

  • #1502 [libraries] Update standard libraries to SysMLv2 2025-07 specification.

  • #1432 [metamodel] Add implicit Subclassification or Subsetting when using semantic MetadataUsage.

  • #1355 [tests] Add coding rules tests on all modules.

  • #1530 [details] Move `RequirementUsage’s ReqId property from the Advanced tab to the Core tab of the Details View.

  • #1534 [explorer] Since it is now possible to switch from a Standard Diagram View to another in SysON (for example from General View to Interconnection View), the ViewDefinition name in displayed in the label of the ViewUsage in the Explorer View. With this enhancement, users can now easily identify which ViewDefinition is used by a ViewUsage.

  • #1535 [explorer] Since it is now possible to switch from a Standard Diagram View to another in SysON (for example from General View to Interconnection View), the ViewUsages default name does not contain the name of the ViewDefinition anymore. With this enhancement, users avoid confusion when switching from one ViewDefinition to another one in a ViewUsage.

  • #1245 [syson] Standardize read-only computation. We removed the assumptions SysON made on whether a resource is read-only. Resources are now considered read-only if:

    • They are Sirius Web libraries imported by reference

    • They are textual SysML files imported as read-only

    • They are standard libraries (SysML and KerML) All the other resources are read-write.

  • #1558 [doc] Add library update impact analysis in the user documentation.

  • #1557 [doc] Add read-only model upload in the user documentation.

New features

  • #1314 [diagrams] (Almost) All node descriptions are now synchronized (based on the exposed elements of ViewUsages). This contribution allows to switch from one ViewDefinition to another one in a ViewUsage without having to re-create the diagram.

  • #1525 [diagrams] Add support for the management of the appearance of custom nodes (Package, ImportedPackage, Note and ViewFrame) with the extension point PaletteAppearanceSectionContribution.

    • DiagramImporterSysMLPackageNodeStyleAppearanceChangeHandler implements IDiagramImporterNodeStyleAppearanceChangeHandler allows the importation of diagram with Package nodes that have custom appearance.

    • EditSysMLPackageNodeAppearanceEventHandler implements IDiagramEventHandler adds the needed appearanceChanges to the diagramContext after receiving the mutation.

    • SysMLPackageNodeAppearanceHandler implements INodeAppearanceHandler handles how the node is updated from the appearanceChanges.

    • A GraphQL mutation is also added through editSysMLPackageNodeAppearance.

    • Same mechanism is applied to ImportedPackage, Note and ViewFrame nodes.

  • #1532 [tables] Add new Requirements table View.

v2025.8.0

Shapes

  • Added a duplicate object menu item for SysMLv2 elements in the Explorer view.

  • Added a diagram tool to duplicate graphical nodes in diagrams.

Breaking changes

In any case, download all your existing models/projects and back up your database before upgrading to 2025.8.0 (as always).

The new concepts are:

  • InstantiationExpression (inherits from Expression)

  • ConstructorExpression (inherits from InstantiationExpression)

The new attributes are:

  • On Feature

    • isConstant : EBoolean

  • On Usage

    • mayTimeVary : EBoolean

The new operations are:

  • On Element

    • path() : EString

  • On Feature

    • isFeaturingType(Type) : EBoolean

    • canAccess(Feature) : EBoolean

  • On Type

    • isCompatibleWith(Type) : EBoolean

    • allRedefinedFeaturesOf(Membership) : Feature

The new references are:

  • On Connector

    • defaultFeaturingType : Type

  • On InstantiationExpression

    • argument : Expression

The updates are:

  • The concept FlowConnectionDefinition has been renamed to FlowDefinition.

  • The concept FlowConnectionUsage has been renamed to FlowUsage.

  • The concept SuccessionFlowConnectionUsage has been renamed to SuccessionFlowUsage.

  • The concept ItemFlow has been renamed to Flow.

    • The reference itemFlowEnd : ItemFlowEnd has been renamed to flowEnd : FlowEnd.

  • The concept ItemFlowEnd has been renamed to FlowEnd.

  • The concept SuccessionItemFlow has been renamed to SuccessionFlowTypeFeaturing.

    • The reference featuringType : Type no longer redefines type.

    • The reference featureOfType : Feature no longer redefines feature.

  • The concept ItemFeature has been renamed to PayloadFeature.

  • On MetadataAccessExpression

    • The reference referencedElement : Element is now derived and subsets member.

  • On FeatureMembership

    • The reference owningType : Type no longer redefines type.

    • The reference ownedMemberFeature : Feature no longer redefines feature.

  • On Feature

    • The attribute isReadOnly : EBoolean has been renamed to isVariable : EBoolean.

The deletions are:

  • The concept Featuring

  • The concept LifeClass

  • On Membership

    • The operation allRedefinedFeature() : Feature

  • On Feature

    • The reference valuation : FeatureValue

  • On OccurrenceDefinition

    • The reference lifeClass : LifeClass

  • On Succession

    • The reference effectStep : Step

    • The reference guardExpression : Expression

    • The reference transitionStep : Step

    • The reference triggerStep : Step

All standard libraries have been updated to comply with the SysMLv2 2025-04 specification. All validation rules have been updated to comply with the SysMLv2 2025-04 specification.

  • #893 [explorer] Fix Expand All tool in SysON Explorer view

    • ISysONExplorerFragment implementations now need to implement getKind() and getParent().

    • The constructors of KerMLStandardLibraryDirectory, LibrariesDirectory, SysMLStandardLibraryDirectory, and UserLibrariesDirectory now have a new parent parameter.

    • ISysONExplorerService implementations now need to implement canExpandAll(TreeItem, IEditingContext)

    • ISysONExplorerServiceDelegate implementations now need to implement canExpandAll(TreeItem, IEditingContext)

  • #1422 [releng] The following files have been moved to syson-components and it is no longer necessary to add them to a project on top of SysON:

    • SysONDocumentTreeItemContextMenuContribution

    • SysONExtensionRegistryMergeStrategy

    • SysONObjectTreeItemContextMenuContribution

Dependency update

Bug fixes

  • #893 [explorer] Fix Expand All tool in SysON Explorer view

  • #1398 [explorer] Fix an issue where a d’n’d of an Element in a diagram exposed the Element twice in the ViewUsage associated to the diagram.

  • #1411 [syson] Fix an issue where model and diagrams referencing standard libraries elements might not correctly loaded.

  • #1411 [syson] Fix an issue where model and diagrams referencing standard libraries elements might not correctly saved.

  • #1407 [metamodel] Fix an issue where a Feature containing a ChainingFeature was not typed with the type of the last ChainingFeature.

  • #1409 [import] Fix unresolved elements while importing element with FeatureChain.

  • #1431 [import] Fix textual import issues when importing MetadataUsage.

  • #1458 [explorer] Fix an issue where the context menu of the Explorer view was loaded twice.

  • #1465 [diagrams] Fix an issue where the Actors were not shown anymore in the actors compartment.

  • #1469 [rest-apis] Fix an issue where string values were used instead of literal values for primitive types when serializing with JSON.

Improvements

  • #1384 [metamodel] Align metamodel to SysMLv2 2025-04 specification released on April 2025(see https://www.omg.org/spec/SysML/ for more details) and KerML 2025-04 specification released on April 2024(see https://www.omg.org/spec/KerML/ for more details).

  • #1448 [syson] Exclude referenced libraries from validation.

  • #1467 [rest-apis] Make @id and elementId attributes having the same value (the elementId one) in JSON serialization for REST APIs.

  • #1470 [rest-apis] Use alphabetical order for the JSON serialization of attributes and references of REST APIs.

New features

  • #1396 [general-view] Add a graphical edge representation for IncludeUseCaseUsage in the General View diagram.

  • #1405 [export] Implement the textual export of FlowUsage.

  • #2013 [diagram] Add a tool to create and setup a FlowUsage on a ConnectionUsage graphical edge.

v2025.6.0

Shapes

  • Add support for ViewUsages and ViewDefinitions

Breaking changes

  • Some APIs have changed, impacting downstream applications:

    • org.eclipse.syson.tree.explorer.view.services.api.ISysONDefaultExplorerService

      • hasChildren: new List<RepresentationMetadata> existingRepresentations parameter

      • getChildren: new List<RepresentationMetadata> existingRepresentations parameter

    • org.eclipse.syson.tree.explorer.view.services.api.ISysONExplorerFragment

      • hasChildren: new List<RepresentationMetadata> existingRepresentations parameter

      • getChildren: new List<RepresentationMetadata> existingRepresentations parameter

    • org.eclipse.syson.tree.explorer.view.services.api.ISysONExplorerService

      • hasChildren: new List<RepresentationMetadata> existingRepresentations parameter

      • getChildren: new List<RepresentationMetadata> existingRepresentations parameter

    • org.eclipse.syson.tree.explorer.view.services.api.ISysONExplorerServiceDelegate

      • hasChildren: new List<RepresentationMetadata> existingRepresentations parameter

      • getChildren: new List<RepresentationMetadata> existingRepresentations parameter

  • #1350 [metamodel] org.eclipse.syson.sysml.textual.SysMLElementSerializer.SysMLElementSerializer now requires to be given an implementation of INameDeresolver as a constructor parameter. The constructor with implicit parameters has disappeared and need to be replaced by the constructor with all parameters.

Dependency update

  • [releng] Switch to Sirius Web 2025.6.0

  • [releng] Switch @xyflow/react to 12.6.0

  • [releng] Switch @mui/material to 7.0.2

  • [releng] Switch @mui/icons-material to 7.0.2

  • [releng] Switch @mui/x-tree-view to 7.29.1

  • [releng] Switch tss-react to 4.9.16

  • [releng] Switch to JaCoCo 0.8.13.

  • [releng] Switch to Spring Boot 3.4.5.

  • [releng] Switch to EMFJson 2.5.1. The following dependencies have been updated:

    • org.eclipse.emf.ecore.xmi from 2.16.0 to 2.38.0

    • org.eclipse.emf.common from 2.21.0 to 2.31.0

    • org.eclipse.emf.ecore from 2.23.0 to 2.37.0

    • org.eclipse.emf.edit from 2.16.0 to 2.22.0

    • org.eclipse.emf.ecore.edit from 2.13.0 to 2.15.0

    • org.eclipse.emf.codegen from 2.23.0 to 2.24.0

    • org.eclipse.emf.codegen.ecore from 2.25.0 to 2.39.0

Bug fixes

  • #1258 [publication] Add required libraries as dependencies when publishing a project. Publishing a project that has a dependency to a library now correctly produces a library with the same dependency.

  • #1259 [general-view] Fix an issue where New Binding Connector As Usage (bind) tool accessible on ItemUsage bordered nodes was failing to create graphical edge between ItemUsage bordered nodes.

  • #1269 [general-view] Automatically reveal new Perform Actions with reference from Parts. When creating a new Perform Action referencing an existing Action, all compartments containing this new element are now expanded to reveal it.

  • #1272 [general-view] Fix an issue where the execution of Add existing elements tool adding Succession with guard involving 'start' or 'done' were not well displayed.

  • #1297 Fix an issue where the children of the Package graphical node lost their position when diagram is rendered after tab switching.

  • #1300 [general-view] Fix wrong tool section name found in some compartments' palette.

  • #1303 [general-view] Fix the name of Constraint creation tools inside Requirement.

  • #1324 [details] Fix an issue that prevents ending up with a null reference in the reference widget.

  • #1090 [import] Fix the textual import of MultiplicityRange with lower and upper bounds. The import now correctly creates a MultiplicityRange containing LiteralInteger elements for integer bounds, and FeatureReferenceExpression elements for feature bounds.

  • #1318 [details] Fix an issue that prevents adding a new value to a multi-valued reference in the reference widget.

  • #1331 [general-view] Fix an issue that prevents dropping a Definition element from the Explorer view on a General View.

  • #1321 [general-view] Prevent TransitionUsage graphical edges source/target reconnection to another TransitionUsage.

  • #1236 [general-view] Improve BindingConnectorAsUsage to be able to create FeatureChain if necessary.

Improvements

  • #1192 [general-view] Add ConnectionDefinition in General View diagram

  • #1196 [general-view] Add New Exhibit State with referenced State tool on Part Usage graphical elements.

  • #1214 [export] Implement textual export of ForkNode.

  • #1216 [export] Implement textual export of JoinNode.

  • #1217 [export] Implement textual export of MergeNode.

  • #1222 [general-view] Add ItemUsage as bordered nodes of ActionUsage and ActionDefinition in the General View diagram.

  • #1226 [general-view] Add the possibility to create FlowConnectionUsage as graphical edges from ItemUsage bordered nodes on General View diagram.

  • #1249 [import][export] Implement textual import/export of AcceptActionUsage.

  • #1247 [explorer] Type new ViewUsage from Explorer view with General View ViewDefinition. When end-users click on New Object on a semantic element, and select a ViewUsage, then a ViewUsage typed by default with the General View ViewDefinition from the standard library will be created.

  • #1252 [export] Implement textual export of TriggerInvocationExpression.

  • #1233 [general-view] Add a creation tool of State sub actions with referenced action inside State elements

  • #1255 [general-view] Improve label of TransitionUsage to display the "AcceptParameterPart".

  • #1210 [general-view] Add the parameters compartment on ActionDefinition in the General View diagram.

  • #1267 [general-view] Improve the New Perform tool selection dialog to display existing actions in a tree.

  • #1257 [general-view] Add the perform actions compartment on PartUsage and PartDefinition graphical nodes in the General View diagram.

  • #1277 [general-view] Add the perform actions compartment on ActionUsage and ActionDefinition graphical nodes in the General View diagram.

  • #1287 [general-view] Reduce the initial width of the Package graphical node.

  • #1244 [details] Make LibraryPackage’s `isStandard checkbox read-only in the Details view. At the moment SysON only supports KerML and SysML, and does not support the definition of other normative model libraries.

  • #1281 [syson] Prevent the loading of the editing context when querying commands in the omnibox.

  • #1261 [import] Improve New objects from text action in order to be able to resolve names against existing elements.

  • #1294 [general-view] StateUsages, StateDefinitions and ExhibitStates are now able to display state transition compartment.

  • #1251 [explorer] Create ViewUsage semantic element in addition to Diagram on New representation menu in Explorer view. All existing SysON DiagramDescriptions (i.g. General View, Interconnection View…​) have been updated to reflect the fact that they now be associated to ViewUsages.

  • #1314 [diagrams] Synchronize ViewUsage#exposedElement when manipulating any SysMLv2 diagram (General View, Interconnection View, …​).

  • #1322 [import] Make file extension check case-insensitive on textual import (i.e. allows to import .SYSML, .SysML, .KERML…​)

  • #1339 [details] Make the Details view more extensible in how it determines whether an Element is read-only or not.

  • #1346 [general-view] Improve direct edit tool on ConstraintUsage to be able to edit basic expressions.

  • #1310 [metamodel] Revert remove derived flag for ViewUsage#exposedElement feature.

  • #1359 [export] Implement textual export of ViewUsage.

  • #1350 [general-view] Improve direct edit tool on Feature to be able to edit FeatureValue with basic expressions.

  • #1363 [general-view] Add a reveal only valued content action on the manage visibility node action that will hide empty graphical compartments and will reveal the others.

  • #1357 [syson] Add support for Resource and EAnnotation in SysONReadOnlyObjectPredicateDelegate.

  • #1368 [general-view] Add an edge representation for FeatureValue linking two Features.

New features

  • #1237 [general-view] Add ViewUsage graphical node in the General View diagram.

  • #1279 [general-view] Support ViewUsage graphical contents in the General View diagram.

  • #1336 [general-view] Add manage visibility node action on Definition and Usage graphical nodes element in the General View diagram.

v2025.4.0

Shapes

  • Add support for library publication

Breaking changes

  • #1079 [metamodel] Align metamodel to SysMLv2 2024-12 specification released on December 2024(see https://www.omg.org/spec/SysML/ for more details) and KerML 2024-12 specification released on December 2024(see https://www.omg.org/spec/KerML/ for more details). Please download all your models/projects before upgrading to 2025.4.0. The new concepts are:

    • CrossSubsetting (inherits from Subsetting)

    • IndexExpression (inherits from OperatorExpression) The new operations are:

    • Usage#referencedTargetFeature()

    • Type#supertypes(EBoolean)

    • Type#removedRedefinedFeatures(Membership)

    • Type#nonPrivateMemberships(Namespace, Type, EBoolean)

    • Type#inheritableMemberships(Namespace, Type, EBoolean)

    • Type#multiplicities()

    • Namespace#membershipsOfVisibility(VisibilityKind, Namespace)

    • Membership#allRedefinedFeatures()

    • Feature#allRedefinedFeatures()

    • Feature#asCartesianProduct()

    • Feature#isCartesianProduct()

    • Feature#isOwnedCrossFeature()

    • Feature#ownedCrossFeature() The new references are:

    • CrossSubsetting#crossedFeature

    • CrossSubsetting#crossingFeature

    • Feature#crossFeature

    • Feature#ownedCrossSubsetting

    • Annotation#ownedAnnotatingElement

    • AnnotatingElement#owningAnnotatingRelationship

    • FlowConnectionDefinition#flowConnectionEnd The modifications are:

    • Usage#nestedConnection now subsets Usage#nestedUsage instead of Usage#nestedPart

    • CaseDefinition#subjectParameter now subsets Definition#usage instead of Definition#ownedUsage

    • CaseDefinition#objectiveRequirement now subsets Definition#usage instead of Usage#ownedRequirement

    • CaseDefinition#actorParameter now subsets Definition#usage instead of Usage#ownedPart

    • CaseUsage#subjectParameter now subsets Usage#usage instead of Usage#nestedUsage

    • CaseUsage#objectiveRequirement now subsets Usage#usage instead of Usage#nestedRequirement

    • CaseUsage#actorParameter now subsets Usage#usage instead of Usage#nestedPart

    • RequirementDefinition#subjectParameter now subsets Definition#usage instead of Definition#ownedUsage

    • RequirementDefinition#stakeholderParameter now subsets Definition#usage instead of Definition#ownedUsage

    • RequirementDefinition#actorParameter now subsets Definition#usage instead of Definition#ownedUsage

    • RequirementUsage#subjectParameter now subsets Usage#usage instead of Usage#nestedUsage

    • RequirementUsage#stakeholderParameter now subsets Usage#usage instead of Usage#nestedUsage

    • RequirementUsage#actorParameter now subsets Usage#usage instead of Usage#nestedPart

    • Type#inheritedMemberships

      • excluded parameter renamed to excludedTypes

      • new excludedNamespaces : Namespace [0..\*] parameter

    • MultiplicityRange#bound now subsets Namespace#ownedMember instead of redefining it

    • InvocationExpression#operand has been deleted

    • FlowConnectionUsage now inherits from ConnectorAsUsage instead of ConnectionUsage

    • Definition#ownedConnection now subsets Definition#ownedUsage instead of Definition#ownedPart

    • Annotation#annotatingElement is now derived

    • AnnotatingElement#annotation is now derived

    • FlowConnectionDefinition do not inherits from ConnectionDefinition anymore

    • FlowConnectionUsage#flowConnectionDefinition do not redefines ConnectionUsage#connectionDefinition anymore All standard libraries have been updated to comply with the SysMLv2 2024-12 specification. All validation rules have been updated to comply with the SysMLv2 2024-12 specification.

  • #1030 [metamodel] The source and target features are no longer editable on all concepts inheriting from ConnectorAsUsage.

  • #1093 [diagrams] Handle TransitionUsage between ActionUsages in diagrams :

The SysMLElementSerializer is now used to display the guard expressions on the label of the TransitionUsages. To avoid creating a dependency to syson-sysml-export from the modules holding the View descriptions, all the code that converts a SysML model to its textual format has been moved to syson-sysml-metamodel. As a consequence the following classes have been moved from the package org.eclipse.syson.sysml.export to org.eclipse.syson.sysml.textual:

  • SysMLElementSerializer

  • Appender

  • NameDeresolver

  • Severity

  • Status

  • SysMLKeywordSwitch

  • SysMLRelationPredicates

All matching tests have also been moved.

  • [rest-apis] Allow createCommit REST API to amend commit. SysMLv2RestDataVersionPayloadSerializerService has been deleted. There is no more need for a specific serializer for this RestDataVersion#payload attribute, because RestDataVersion#payload is now typed with a Map<String, Object> instead of Object. The Map<String, Object> is handled by the default serializer/deserializer. RestDataVersionRequest#payload is now typed by a Map<String, Object> instead of IRestDataRequest.

  • [test] The integration tests have been refactored. The initialization SQL scripts have been split in smaller pieces. The class SysMLv2Identifiers has also been split in:

    • XXXTestProjectData : which contains all required data for test on a specific project.

    • SysONRepresentationDescriptionIdentifiers : which contains the representation description IDs.

Dependency update

  • [releng] Switch to Spring Boot 3.4.4.

  • [releng] Switch to Sirius Web 2025.4.0

  • [releng] Switch to Turbo 2.4.4

  • [releng] Switch to @xyflow 12.4.4

  • [releng] Switch to Sirius EMF-JSON 2.4.0

Bug fixes

  • #870 [metamodel] Fix an issue while computing the name of VariantMembership.

  • #1083 [metamodel] Fix an issue where resolving against "unrestricted" name did not work

  • #1075 [import] Fix a ClassCastException thrown while importing a model with a name conflict.

  • #1091 [export] Fix FeatureReferenceExpression export for elements that should be exported as qualified names. Exporting a SysML model containing a FeatureReferenceExpression now correctly produces qualified names where it should.

  • #1077 [explorer] Fix navigation in case of project containing both sysml and non-sysml model elements

  • #1029 [metamodel] Fix an issue where the resolution of the names of elements accessed using implicit specialization failed.

  • #1148 [metamodel] Fix computation of SuccessionAsUsage source and target feature when using implicit source/target.

  • #1158 [import] Fix imported TransitionFeatureKind value on accept and do TransitionFeatureMembership Importing an "accept" TransitionFeatureMembership now correctly sets its kind to trigger. Importing a "do" TransitionFeatureMembership now explicitly sets its kind to effect.

  • #1164 [import] Fix imported RequirementConstraintKind value on require and assume RequirementConstraintMembership Importing a "require" RequirementConstraintMembership now correctly sets its kind to requirement. Importing an "assume" RequirementConstraintMembership now explicitly sets its kind to assumption.

  • #1154 [import] Fix import of TextualRepresentation.

  • #1169 [syson] Add a new navigation bar menu icon on the top right corner of the application.

  • #1172 [import] Uniformize the import of LiteralString value. The value field of imported LiteralString elements does not contain double quotes anymore. This behavior is aligned with how SysON handles quotes in declaredName fields.

  • #1173 [export] Fix the textual export of LiteralString not wrapped in double quotes. The user had to explicitly add the double quotes around a LiteralString value to ensure the export was producing valid SysML. This is not the case anymore.

  • #1176 [general-view] Fix the creation of TransitionUsage from an ActionUsage to the "Done" ActionUsage.

  • #1183 [metamodel] Fix Element#isLibraryElement for elements inside LibraryPackage. The attribute is now correctly true for elements contained in the ownership tree of a LibraryPackage.

Improvements

  • #1061 [general-view] Add ellipsis on Packages label, to provide visual feedback on name overflow.

  • #1007 Improve direct edit on Feature elements to be able to set the isDefault and isInitial properties

  • #1033 [explorer] Make it possible to create a diagram representation directly under a root Namespace element

  • #960 [general-view] In the selection dialog of the subject creation tool, display possible Usage candidates in a tree instead of a list.

  • #1028 [import] Improve handling of SuccessionAsUsage with implicit source feature.

  • #938 [general-view] Add Satisfy Requirement Usage to General View diagram. A new creation tool is available in the Requirements section of the palette, allowing the creation of Satisfy Requirement Usage objects. A new dra & drop tool is available on the diagram, allowing moving Satisfy Requirement Usage graphical nodes on the diagram.

  • [explorer] The General View diagram is now proposed first when creating a diagram.

  • #1024 [diagrams] Allow Usage and Definition graphical node labels to be wrapped to handle long names more easily.

  • #1030 [metamodel] ConnectorAsUsage.getSourceFeature and ConnectorAsUsage.getTargetFeature should redefine Relationship.source and Relationship.target features

  • #1042 [import] Improve textual import of SuccessionAsUsage which define a new target action directly after the 'then' keyword.

  • #1045 [export] Improve textual export by properly handle named SuccessionAsUsage.

  • #1080 [import] Improve textual import and resolution against ConjugatedPorts.

  • #1048 [import] Improve textual import of TransitionUsage by handling implicit source property.

  • #1094 [import] Improve textual import of TransitionUsage by handling guards.

  • #1105 [metamodel] Implement ConnectionDefinition derived references and operations in SysON SysMLv2 metamodel.

  • #1093 [general-view] Handle TransitionUsage in GeneralView diagram

  • #1113 Update Batmobile project example

  • #1037 [general-view] Add "Add existing nested element" tool on the Action Flow compartment on the General View Diagram.

  • #1122 [metamodel] Add support for implicit parameter redefinition Parameters of Behavior and Step now implicitly redefine the matching parameters of Behavior subclassifications and Step specializations. See KerML 7.4.7.2 and 7.4.7.3 for more information. These implicit redefinitions are not visible in the diagrams nor the explorer (like all the other implicit specializations). The importer can now import SysML files that contain FeatureChainingExpression relying on these implicit redefinitions.

  • #1120 [general-view] Add a graphical edge to represent the composition between OccurrenceDefinition and its OccurrenceUsages.

  • #1125 [general-view] Simplify "Done" and "Start" actions

  • #1131 [diagrams] Allow NamespaceImport graphical node labels to be wrapped to handle long names more easily.

  • #1143 [export] Implement textual export of Decision Transition Usages.

  • #1147 [export] Implement textual export of DecisionNode.

  • #1141 [general-view] Add PortUsages as border nodes in General View.

  • #1155 [publication] Remove the imported EAnnotation from published libraries This annotation conflicts with the behavior of the import by copy feature, which should allow the user to edit the content of the imported library. This was not possible for libraries containing LibraryPackage instances, which were always read-only, regardless of the import kind.

  • #1160 [details] Use textarea widget for "body" property on Comment, Documentation and TextualRepresentation (instead of textfield widget).

  • #1152 [general-view] Add TextualRepresentation in General View diagram.

  • #1177 [syson] Add new SysMLv2 Library template allowing to create a project composed with a simple model with only one element: a LibraryPackage.

  • #1162 [export] Implement textual export of TextualRepresentation.

  • #1200 [general-view] Display Comments on Dependency graphical edges.

  • #1200 [general-view] Add Comment creation tool on Dependency graphical edges.

  • #1198 [general-view] Add edge tools on PortUsage border nodes in the General View

  • #1223 [general-view] Add Comment creation tool on TransitionUsage graphical edges.

New features

  • #1078 [publication] Add support for publishing the SysML contents of a project as a library.

  • #1109 [publication] Add support for importing published libraries as dependencies of a project.

  • #1118 [publication] Add support for updating the version of a library used as a dependency of a project.

v2025.2.0

Breaking changes

  • #987 Implementation of drag and drop in SysOn Explorer view

    • A new service has been added to centralize the behavior of moving semantic elements in org.eclipse.syson.services.api.ISysMLMoveElementService. It replaces the public methods UtilService.moveMembership and ToolService.moveSemanticElement

    • A new service has been added to centralize the verification of read-only elements in org.eclipse.syson.services.api.ISysMLReadOnlyService.

  • #1018 SysMLStandardLibrariesConfiguration has been refactored and renamed SysONDefaultLibrariesConfiguration.

Dependency update

  • Switch to Sirius Web 2025.2.0

  • #953 [rest-apis] Backend module syson-sysml-rest-api-services now depends on jackson-datatype-jsr310 for JSON dates serialization

  • #1023 [releng] Switch to SysIDE 0.8.0

  • Upgrade turbo to version 2.3.3

  • Switch to Spring Boot 3.4.1

Bug fixes

  • #953 [rest-apis] Fix an issue where the server could crash when successive REST APIs calls are executed. More precisely, the dates fields were not serialized correctly.

  • #961 [core] Fix an issue where default names of Elements were sometimes invalid because corresponding to SysMLv2 keywords. New default names now includes a number, this number corresponding to the count of Elements of the same kind in the scope.

  • eclipse-syson#965 [export] Fix an issue where downloading of standard libraries pointed at 404 error. They are now properly downloaded. Export to textual SysMLv2 is not fully implemented yet so there are still unhandled cases.

  • #998 Fix Port Usage labels in diagrams.

  • #1002 Invalid label for Usages (e.g.: Attribute Usage) when their Feature Value aims to define "initial" value.

  • #1003 Invalid label for Usages (e.g.: Attribute Usage) when their Feature Value aims to define "default" value.

  • #1020 [general-view] The multiplicity should not be displayed on edges.

  • #1009 [metamodel] Fix an issue where the diagram direct edit on graphical nodes could raise a backend error on unsettable enum attributes.

  • #1052 [general-view] Fix an issue where the execution of "New Port In/Inout/Out" tools was failing.

Improvements

  • #897 [general-view] Add Concern Definition to General View diagram. A new node creation tool is available in the Requirements section of the palette, allowing the creation of Concern Definition objects. A new drop node tool is available on the diagram, allowing representing Concern Definition objects as nodes of the diagram.

  • #899 [general-view] Add Concern Usage to General View diagram. A new node creation tool is available in the Requirements section of the palette, allowing the creation of Concern Usage objects. A new drop node tool is available on the diagram, allowing representing Concern Usage objects as nodes of the diagram.

  • #936 [general-view] Add compartment for the 'StakeholderParameter' of Concern Definition, Concern Usage, Requirement Definition, Requirement Usage to the General View diagram. In the palette of the 'stakeholders' compartment, the creation tool 'New Stakeholder' allows selecting an Item Usage or Item Definition to add as stakeholder.

  • #941 [details] Prevent edition of imported user libraries from the details view.

  • #946 [metamodel] Align metamodel to SysMLv2 and KerML Beta 2.3 specifications. The changes are:

    • TransitionUsage

      • new operation sourceFeature() : Feature

    • New class TerminateActionUsage

      • with new derived reference terminatedOccurrenceArgument : Expression

  • #946 [libraries] All standard libraries have been updated to comply with the SysML Beta 2.3 specification.

  • #982 [metamodel] Membership#isDistinguishableFrom derived attribute has been implemented.

  • #992 [export] Implement SysML export of ConcernDefinition, ConcernUsage and StakeholderMembership

  • #960 [general-view] In the selection dialog of the creation tools for Stakeholders and Actors, display possible Part Usage candidates in a tree instead of a list.

  • #1012 [general-view] Allow Package and NamespaceImport graphical nodes to be smaller than their default size

  • #1006 [details] Display FeatureValue.isDefault and FeatureValue.isInitial in Core tab of FeatureValue concept.

  • #1018 [libraries] Make customizing the default metamodels and libraries available in SysML projects easier by making default implementation SysONDefaultLibrariesConfiguration.java more extensible. To do so, create a @Primary @Configuration component that extend SysMLDefaultLibrariesConfiguration, and optionally redefine getDefaultLibraries() method and/or getDefaultEPackages().

New features

  • #977 [validation] SysON now implements the constraints (a.k.a. validation rules) from the SysMLv2 specification. The Validation view show the results of the execution of the constraints on your models.

  • #987 Implementation of drag and drop in Explorer view.

  • #1000 Add support for semantic undo redo.

v2025.1.0

Shapes

  • Improve support for libraries in the explorer

Breaking changes

  • #796 [import] Improve the code in the import module to make it more generic:

    • Delete the AstConstants class: Constants have been split across several classes.

    • Delete the LogBook class (no longer used).

    • Replace AstContainmentReferencePart with ContainmentReferenceHandler.

    • Replace AstObjectParser with EAttributeHandler.

    • Replace AstWeakReferenceParser with NonContainmentReferenceHandler.

    • Delete ReferenceHelper (no longer used).

    • Delete SysMLUploadDocumentReportProvider as it is not functional.

    • Most components used in the transformation now require a MessageReporter instance to collect transformation messages.

  • #887 [explorer] Rework the structure of standard and user libraries in the explorer:

    • Rename StandardLibraryDirectory to LibrariesDirectory.

    • Rename ReferencedLibraryDirectory to UserLibrariesDirectory.

  • #906 [explorer] Ensure that a non-library imported model is not moved into the User libraries directory when a LibraryPackage is created in it. ElementUtil#setIsImported(Resource) has been updated to ElementUtil#setIsImported(Resource, boolean) to reflect this change.

Dependency update

  • [releng] Switch to Sirius Web 2025.2.0

  • [releng] Upgrade turbo to version 2.3.3 (from 1.13.3 before) The start task used in our turbo configuration is now marked as persistent and as a result we have separated the start script from syson used to run the frontend in dev from from the start script from other packages used to build them in development mode by renaming the later to build-dev.

  • [releng] Switch to Spring Boot 3.4.1.

Bug fixes

  • #868 [export] Fix textual export of LibraryPackage

  • #883 [explorer] Fix getChildren error with 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.

  • #884 [related-elements] Fix an issue where some error messages were displayed when an element with implicit Specialization was selected and the Related Elements View was displayed.

  • #895 [explorer] 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.

  • #906 [explorer] Ensure that a non-library imported model is not moved into the User libraries directory when a LibraryPackage is created in it.

Improvements

  • #829 [metamodel] OccurrenceUsage#portionKind is now unsettable and its default value is null.

  • #796 [import] Improve the code in import module, by making it more generic

  • #818 [export] Add partial support of OccurrenceDefinition and 'OccurrenceUsage` in export from model to textual SysMLv2.

  • #875 [explorer] Improve the support of libraries in the explorer. The explorer now contains 2 directories:

    • Standard Libraries: contains the SysML and KerML libraries

    • Referenced Libraries: contains non-standard libraries imported by the user

  • #887 [explorer] Rework the structure of standard and user libraries in the explorer. The explorer 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

  • #888 [explorer] Remove 'New objects from text' contextual menu entry for libraries.

  • #901 [import] Allow to import .kerml textual files.

  • #889 [explorer] Remove 'New object' and 'New representation' contextual menu entries for libraries.

  • #919 [explorer] Remove Sirius Web default explorer. The SysON Explorer is now the default explorer for SysON, and the Sirius Web explorer cannot be used anymore.

New features

  • #802 [diagrams] Handle imported package elements in diagrams.

  • #908 [diagrams] Organize all palette tools. A new palette is available in SysON, all tools have been organized in sections. This new palette is draggable, and contains a search bar, allowing to easily retrieve tools by their name.

v2024.11.0

Breaking changes

  • #699 [general-view] 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

  • #717 [import] The following methods have been deleted:

    • Deleted AstTreeParser#resolveAllImport

    • Deleted AstTreeParser#resolveAllReference

    • Deleted ProxyResolver#resolveAllProxy

  • #754 [general-view] 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

  • #765 [diagrams] 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.

  • #771 [diagrams] Allow the drop of elements on empty diagram nodes. Rename the class SemanticCheckerFactory to SemanticRunnableFactory to reflect the new use cases of the class.

  • #803 [metamodel] 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

  • #807 [releng] Extract direct edit grammar from services module into separate module (new syson-direct-edit-grammar module).

Dependency update

  • [releng] Switch to Spring Boot 3.3.3

  • [releng] 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

  • [releng] Switch to Sirius Web 2024.11.0

  • [releng] Switch to the final release version of AQL 8.0.2

  • [releng] Switch to @ObeoNetwork/gantt-task-react 0.6.1 to benefit for enhancements

  • [releng] Add a dependency to material-react-table "2.13.3" and export-to-csv "1.3.0"

  • [releng] Switch to commons-io 2.17

  • [releng] Switch to java-uuid-generator 5.1.0

  • #810 [releng] Switch to SysIDE 0.6.2

Bug fixes

  • #744 [import] Fix containment of imported Allocation and AllocationDefinition.

  • #777 [import] Fix import of some boolean attributes (Type#isAbstract, Feature#isDerived, Feature#isEnd, Feature#isReadOnly).

  • #795 [import] Fix an issue where the import failed to resolve redefinedFeature references when the Redefinition had no name.

  • #817 [interconnection-view] Fix an issue where InterfaceUsage and FlowConnectionUsage elements might be created inside the wrong membership.

  • #740 [export] Fix missing declaredName after exporting an AnnotatingElement.

  • #812 [export] Fix visibility issue when resolving name of privately imported element during export.

  • #836 [services] Fix an issue where it was impossible anymore to delete the cardinality of a Usage as graphical node through direct edit.

  • #838 [services] Fix an issue where Subsetting elements were not deleted at the same time as the deletion of their subsetted Feature.

Improvements

  • #699 [general-view] Add CaseUsage and CaseDefinition in General View diagram.

  • #746 [syson] Update Batmobile template.

  • #717 [import] Handle of aliases and external references have been improved.

  • #756 [diagrams] Add short name in container and compartment item labels.

  • #760 [diagrams] Allow to set short name via direct edit.

  • #761 [details] Make Declared Short Name accessible from the Core tab.

  • #765 [diagrams] Remove default name of relationships and improve edge labels.

  • #767 [explorer] Allow to create dependencies from the Explorer view.

  • #771 [diagrams] Allow the drop of elements on empty diagram nodes.

  • #775 [syson] Exclude src/test/resources from checkstyle. This reduces the time required to build SysON, especially when using Spring Tool Suite.

  • #779 [diagrams] Add New Subsetting tool on PartUsage to create a Subsetting edge and a PartUsage that is subset.

  • #780 [diagrams] Add New Feature Typing tool on PartUsage to create a FeatureTyping edge and a PartDefinition

  • #785 [interconnection-view] Add New Binding Connector As Usage tool on PartUsage in Interconnection View diagram.

  • #789 [interconnection-view] Add New Flow Connection tool on PartUsage in Interconnection View diagram.

  • #790 [interconnection-view] Add New Interface tool on PartUsage in Interconnection View diagram.

  • #799 [export] Handle UseCaseUsage and IncludeUseCaseUsage elements.

  • #803 [libraries] All standard libraries have been updated to comply with the SysML Beta 2.2 specification.

  • #805 [import] Improve non regression tests. Added source sysml file and unaltered ast.json result.

New features

  • #694 [diagrams] Add a new custom node note among possible node style descriptions.

  • #695 [diagrams] Add Documentation element as graphical node in all diagrams.

  • #731 [explorer] Allow creation of Comment from the Explorer view.

  • #696 [diagrams] Add Comment element as graphical node in all diagrams.

  • #697 [details] Add Comment property to Core tab of the Details view.

  • #754 [general-view] 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.

  • #824 [rest-api] Introduce partial support of the standard REST APIs from the OMG [SystemsModelingAPI](https://www.omg.org/spec/SystemsModelingAPI/). 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.

v2024.9.0

Breaking changes

  • #554 [diagrams] Move StateTransitionCompartmentNodeDescriptionProvider from syson-diagram-statetransition-view to module syson-diagram-common-view.

  • #393 [general-view] Code refactoring:

    • Rename ExhibitStatesCompartmentItemNodeDescriptionProvider to StatesCompartmentItemNodeDescriptionProvider.

    • StatesCompartmentNodeDescriptionProvider now handles both exhibit and non-exhibit states.

  • #564 [metamodel] 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"

  • #568 [interconnection-view] The following classes have been deleted, renamed, or merged to simplify the Interconnection View:

    • Deleted InterconnectionViewForDefinitionDescriptionProvider

    • Deleted InterconnectionViewForDefinitionDiagramDescriptionProvider

    • Deleted InterconnectionViewForUsageDiagramDescriptionProvider

    • Merged RootUsageNodeDescriptionProvider and RootDefinitionNodeDescriptionProvider into RootNodeDescriptionProvider

    • Renamed FirstLevelChildPartUsageNodeDescriptionProvider to FirstLevelChildUsageNodeDescriptionProvider

    • Renamed ChildPartUsageNodeDescriptionProvider to ChildUsageNodeDescriptionProvider

  • [releng] Switch to Sirius Web 2024.7.1: all diagrams must be deleted and created again, due to the fix of this Sirius Web bug.

  • #604 [details] 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

  • #634 [diagrams] Allow to select existing Type on Subject tool. The following methods have been deleted or modified:

    • Deleted ViewCreateService#createPartUsageAsSubject

    • Add new EClass, 'EReference' and IDescriptionNameGenerator parameters to SubjectCompartmentNodeToolProvider

  • [core] Migrate frontend to MUI 5, if you contributed React components that use MUI, you should upgrade them to use MUI 5.

  • #674 [diagrams] Ensure that dropped nodes are always collapsed. Moved ToolService#dropElementFromExplorer and ToolService#dropElementFromDiagram into ViewToolService.

    • The method dropElementFromExplorer now requires view-related imports that motivated this refactoring.

    • The method dropElementFromDiagram has been moved for the sake of consistency.

  • #552 [diagrams] 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

  • #552 [diagrams] Rename ViewLabelService#getInitialDirectEditLabel service into getInitialDirectEditListItemLabel to specify the computation of the initial label on list item elements.

  • #715 [services] Fix the drop of an element on itself. EMFUtils#isAncestor(parent, eObject) now returns true if parent == eObject.

  • #718 [action-flow-view] It is not possible to create a Package in an Action Flow View diagram anymore.

Dependency update

  • [releng] Switch to Sirius Web 2024.9.0

  • [releng] Migrate frontend to MUI 5

  • [releng] Switch to maven-checkstyle-plugin 3.4.0

  • [releng] Switch to Spring Boot 3.3.1

  • [releng] Add a dependency to CycloneDX to compute the backend software bill of materials during the build

  • [releng] Add a dependency to pathfinding

Bug fixes

  • #606 [interconnection-view] Prevent nested part to be rendered as border nodes

  • #619 [diagrams] Fix an issue where a click on inherited members inside compartments was raising an error instead of displaying the palette.

  • #621 [syson] Fix non-containment reference issue on standard library copy. These references were still pointing to elements in the standard library resources, while they should point to elements in the copied resources.

  • #651 [metamodel] Remove owning Usage memberships from inherited memberships of Usages.

  • #654 [services] Prevent the drop of an element (from the explorer or from the diagram) on one of its children.

  • #658 [services] Fix direct edit for Requirement and Constraint

  • #552 [diagrams] Fix Add Existing Elements tool for start and done actions.

  • #685 [services] Fix name resolution in constraint expressions. It is now possible to reference an element in any of the containing namespaces of the constraint.

  • #687 [services] Fix the drop of an action from the diagram to an action flow compartment.

  • #703 [services] Fix an issue where it was impossible anymore to set the cardinality of an Element as graphical node through direct edit.

  • #705 [services] Fix ConjugatedPortDefinition label.

  • #704 [interconnection-view] Fix name direct edit for Interconnection View nodes.

  • #715 [services] Fix the drop of an element on itself. The drop doesn’t reveal the documentation compartment anymore, and a warning message is displayed to indicate that the drop is not possible.

  • #711 [diagrams] Prevent feature typing from disappearing 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.

  • #722 [diagrams] Allow the drop of the root element of a diagram on its background.

  • #726 [import] Add support for isReference attribute in SysML parser.

Improvements

  • #538 [general-view] Add actions in PartUsage and PartDefinition

  • #554 [general-view] Add states in PartUsage and PartDefinition

  • #393 [general-view] Add ExhibitStates on General View diagram

  • #557 [state-transition-view] Allow the creation of a StateTransitionView diagram on a PartUsage/PartDefinition

  • #558 [state-transition-view] Allow the creation of a StateTransitionView diagram on a StateUsage/StateDefinition

  • #568 [interconnection-view] Simplify Interconnection View implementation and remove duplicated code

  • #571 [interconnection-view] Add ActionUsage node in Interconnection View

  • #581 [interconnection-view] Add documentation and action flow compartment in ActionUsage

  • #590 [diagrams] Add label support for referential Usages

  • #599 [diagrams] Add support for ref keyword in direct edit

  • #602 [diagrams] Use empty diamond source style for nested reference usage edge

  • #604 [diagrams] 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.

  • #617 [diagrams] Display qualified names in diagrams nodes' labels in case of standard libraries elements.

  • #624 [diagrams] Allow to select existing Action on Perform tool.

  • #628 [diagrams] Allow to set measurement units via direct edit.

  • #634 [diagrams] Allow to select existing Type on Subject tool.

  • #639 [diagrams] Handle properties keywords in label of Usage element.

  • #639 [diagrams] Allow direct edit of properties of Usage elements. The supported properties are in, out, inout, abstract, variation, readonly, derived, end, ordered, and nonunique.

  • #641 [general-view] Add support for expressions in constraints.

  • #644 [general-view] Add actors compartment in UseCase and Requirement.

  • #646 [general-view] Handle the representation of actors on the General View diagram.

  • #648 [general-view] Add support for edges between actors and their containing UseCase/Requirement. The source of the edge (the UseCase or Requirement) can be reconnected to another UseCase or Requirement, but the target (Actor) cannot be reconnected.

  • #656 [services] Improve the drag and drop of containers elements to move their content

  • #660 [general-view] Allow to select existing RequirementUsage and RequirementDefinition on Objective tool.

  • #662 [tests] Make the build fail when a Cypress test contains it.only.

  • #665 [services] Support 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.

  • #671 [syson] Improve the support of root Namespaces.

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

  • #674 [diagrams] Ensure that dropped nodes are always collapsed.

  • #669 [diagrams] Handle properties keywords in labels of Definitions and Usages graphical nodes.

  • #678 [diagrams] Ensure that dropping an element reveals the corresponding node if it exists.

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

  • #670 [diagrams] Ignore keywords order during direct edit of prefixes label of Definitions and Usages graphical elements.

  • #689 [diagrams] Ensure coherence between Direct Edit capabilities and the displayed label

  • #709 [diagrams] Allow to drop a Definition from the explorer on an Usage on a diagram or in a list compartment to type it.

  • #718 [action-flow-view] Allow to create an Action Flow View diagram on ActionDefinition or ActionUsage.

New features

  • #553 [diagrams] Add "Show/Hide Icons in Diagrams" action in Diagram Panel, allowing to show/hide icons in diagrams (icons are not part of the SysMLv2 specification).

  • #585 [diagrams] 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.

  • #587 [interconnection-view] Handle FlowConnectionUsage between PortUsages in Interconnection View. A new edge tool allows to create a flow between two ports.

  • #598 [diagrams] Add tools to set a Feature as composite or reference.

  • #596 [interconnection-view] Handle ItemUsage in Interconnection View and FlowConnectionUsage involving items

  • #615 [details] Add documentation property to Core tab of the Details view.

  • #626 [explorer] Allow to insert textual SysMLv2 from existing model elements.

  • #466 [syson] Handle implicit specializations from standard libraries for Usages/Definitions.

  • #667 [diagrams] Add "Show/Hide Inherited Members in Diagrams" action in Diagram Panel, allowing to show/hide inherited members from users models in diagrams.

  • #680 [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.

v2024.7.0

Breaking changes

  • #298 [syson] Add standard libraries and new models now have a root Namespace to conform with KerML/SysML specifications.

  • #334 [diagrams] 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

  • #349 [syson] 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.

  • #393 [diagrams] 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)

  • #423 [diagrams] ViewLabelService#getCompartmentItemUsageLabel has been renamed to ViewLabelService#getCompartmentItemLabel.

  • #423 [diagrams] ViewLabelService#getUsageInitialDirectEditLabel has been renamed to ViewLabelService#getInitialDirectEditLabel.

  • #492 [diagrams] Code refactoring:

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

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

Dependency update

  • [tests] Add test dependency to Cypress 12.11.0 (only required to execute integration tests)

  • [releng] Switch to EMF Json 2.3.12

  • [releng] Switch to Spring Boot 3.2.5

  • [releng] Switch to @apollo/client 3.10.4

  • [releng] Switch to graphql 16.8.1

  • [releng] Switch to vite 5.2.11, vitest 1.6.0, @vitest/coverage-v8 1.6.0 and @vitejs/plugin-react 4.3.0

  • [releng] Switch to typescript 5.4.5

  • [releng] Switch to turbo 1.13.3

  • [releng] Switch to jacoco 0.8.12

  • [releng] Switch to maven-checkstyle-plugin 3.3.1

  • [releng] Remove the dependency to reflect-metadata

  • [releng] Switch to subscriptions-transport-ws 0.11.0

  • [releng] Switch to @ObeoNetwork/gantt-task-react 0.4.19

  • [releng] Switch to Sirius Web 2024.7.0

Bug fixes

  • #298 [metamodel] Fix metamodel to manage root namespaces.

  • #329 [services] Ignore root namespace with no name during qualified name resolution

  • #337 [diagrams] Fix direct edit of single digit cardinalities.

  • #348 [diagrams] The semantic representation of the Succession edge is not correct.

  • #356 [action-flow-view] The Allocate edge is not displayed in the Action Flow View diagram.

  • #403 [diagrams] Wrong computation of the Succession owner

  • #407 [diagrams] Fix the owner membership of dropped elements

  • #376 [export] Fix names used during export of FeatureValue

  • #373 [export] Fix names used during export of MetadataDefinition

  • #364 [export] Fix names used during export of FeatureChainExpression

  • #363 [export] Fix the first part of the InvocationExpression during export

  • #341 [export] Fix missing element names in the expressions during export

  • #459 [import] Fix documentation import to remove /* */ around texts

  • #490 [diagrams] Fix an issue where the Adjust size tool had no effect on Packages nodes.

  • #502 [export] Fix an issue where the simple quotes were not escaped when exporting as textual files.

  • #511 [export] Fix an issue where models were exported with a global indentation instead of no indentation.

  • #501 [diagrams] Fix an issue where the double quotes were set along with the string value in case of a direct edit of the value part.

  • #509 [general-view] Add missing doc compartment in UseCase, UseCaseDefinition, and AllocationDefinition

  • #505 [diagrams] Add value expression in Node label

  • #506 [diagrams] Fix partial direct edit issues when deleting information

  • #540 [syson] Allow the creation of sub-Packages in the model explorer

Improvements

  • #298 [syson] Add root Namespace to SysON models and libraries

  • #324 [diagrams] Improve support for whitespace, quotes, and special characters in direct edit

  • #307 [diagrams] Fix parallel states tooling conditions

  • #269 [diagrams] Handle start and done actions in Action Flow View & General View diagrams

  • #344 [metamodel] Improve implementation of getName and getShortName

  • #333 [state-transition-view] Improve actions compartment for states

  • #334 [diagrams] Add State Transition View concepts in the General View diagram

  • #388 [details] Add Transition source and target to Core properties in the Details view

  • #394 [metamodel] All redefines references have been implemented.

  • #416 [import] Improve textual import running process. 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.

  • #433 [tests] Add scripts to setup and update the integration testing environment

  • #445 [diagrams] Improve the way node descriptions are retrieved for a given semantic element

  • #439 [diagrams] Handle Perform action concept in diagrams

  • #460 [details] Extra property "Typed by" is now always visible in the details view for Feature elements, even if the Feature doesn’t have a type yet.

  • #468 [diagrams] Rename creation tools for Start and Done actions

  • #470 [diagrams] Reduce the default height of the Package node in diagrams

  • #472 [properties] Move Feature#direction in Core tab of the Details view

  • #475 [explorer] Sort New Object menu entries

  • #477 [diagrams] Add Direct Edit tool in control nodes palette

  • #479 [diagrams] Allow multiple occurrences of Start and Done actions in action body

  • #320 [import] Implement new import strategy based on ecore

  • #486 [diagrams] Improve 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).

  • #483 [diagrams] The empty/null values for subsetting/redefinition/subclassification/featureTyping are not displayed anymore in diagram node labels.

  • #482 [diagrams] Add tools for creating Ports with direction

  • #492 [diagrams] Add tools for creation Items with direction

  • #494 [diagrams] Change the default name of the transition element

  • [syson] Provide new icons for State, Conjugation, Port (in,in/out,out) and Item (in,in/out,out).

  • #507 [general-view] Add tools to create Items and Parts in Port and PortDefinition

  • #508 [general-view] Add tool to create Requirements in RequirementDefinition

  • #519 [diagrams] Add tools for creating Items on ActionDefinition in GeneralView and ActionFlowView.

  • #504 [syson] Add private and protected visibility decorators on all elements

  • #542 [tests] Enable Action’s sub-node creation tests for free form items These tests were de-activated because of an issue in Sirius Web.

New features

  • #315 [tests] Add Cypress test infrastructure and execute the Cypress tests as part of pull request checks

  • #358 [diagrams] Handle the JoinNode concept in actions body of diagrams

  • #359 [tests] Add tests to enforce a set of conventions on SysON DiagramDescriptions

  • #371 [diagrams] Handle the ForkNode concept in actions body of diagrams

  • #381 [diagrams] Handle the MergeNode concept in actions body of diagrams

  • #389 [diagrams] Handle the DecisionNode concept in actions body of diagrams

  • #391 [diagrams] AcceptAction is now available inside an Action body

  • #393 [diagrams] Handle the ExhibitState concept in diagrams

  • #423 [diagrams] Add new documentation compartment on all existing nodes in all diagrams.

  • #420 [diagrams] Handle AssignmentAction concept in actions body in diagrams

  • #405 [tests] Add integration test infrastructure

  • [doc] Initial contribution of the documentation

v2024.5.0

Breaking changes

  • #149 [requirement-view] The requirement-view diagram has been introduced by error in the last release. This diagram is not defined in the SysMLv2 specification. It has been deleted in this release.

Dependency update

  • Switch to Sirius Web 2024.5.0

  • Switch to @ObeoNetwork/gantt-task-react 0.4.9

  • Add dependency to org.apache.commons.commons-text 1.10.0

Bug fixes

  • #144 [diagrams] Fix an issue where the "Add existing elements (recursive)" failed on PartUsage.

  • #167 [interconnection-view] Add attributes compartment in children PartUsage nodes.

  • #174 [details] Fix an issue where an error raised when setting a valid new value (with primitive type) in the Details view.

  • #192 [import] Fix an issue where the /* and */ of a Comment’s body were imported while importing a textual SysML file.

  • #188 [import] Fix an issue where some Memberships were contained in their parent through ownedRelatedElement instead of ownedRelationship reference.

  • #184 [import] Fix an issue from element imported threw an alias

  • #249 [import] Fix an issue to avoid Infinite Loop

  • #199 [explorer] Fix an issue where the rename action was not renaming tree items anymore

  • #209 [diagrams] EnumerationDefinition was created without any name

  • #237 [diagrams] Fix an issue where Add existing element (recursive) creates child nodes for nested and owned usages at the root of the diagram instead of in their parent node

  • #262 [import] Fix an issue where an exception was raised while importing standard examples

  • #264 [diagrams] Restore hide capabilities that were missing after the latest Sirius Web update

  • #274 [import] Namespace.getImportedMemberships method now prevents name collisions

  • #271 [diagrams] Remove non end Usages from AllocationDefinition ends compartment

  • #229 [diagrams] Prevent circular containment of nested parts including self containment

  • #305 [diagrams] Fix performance issue when using EcoreUtil.delete

  • #272 [statetransition-view] Add "state transition" compartment and fix the graphical creation of actions in StateDefinition and StateUsage

  • #294 [diagrams] Fix an issue where inherited features in compartments of a graphical element could display themselves

  • #236 [diagrams] Fix an issue where Add existing element (recursive) could fail.

Improvements

  • #153 [syson] Forbid composite usages inside PortDefinition/PortUsage.

  • #155 [syson] Forbid composite usages inside AttributeDefinition/AttributeUsage.

  • #160 [syson] Add explicit usage of node to call syside javascript file.

  • #172 [details] Add Membership#visibility attribute to Core properties in the Details view.

  • #171 [details] Add PortUsage#direction attribute to Core properties in the Details view.

  • #169 [general-view] Handle UseCaseDefinition and UseCaseUsage in General View diagram

  • #182 [diagrams] Make Definition/Usage node collapsed by default in general-view & actionflow-view diagrams

  • #183 [diagrams] Expand Definition/Usage nodes in all diagrams when a compartment item is created

  • [syson] Add icons for all elements

  • #204 [interconnection-view] Change label position (from inside to outside) for ports (Border Nodes)

  • #202 [general-view] Allow to create general-view diagrams on any Namespace element

  • #268 [diagrams] Reveal only the appropriate compartment when creating child element

  • #278 [interconnection-view] Allow to create interconnection-view diagrams on any Usage/Definition element

  • #277 [diagrams] Add a free-form compartment in Action elements for owned actions

  • #308 [statetransition-view] Add "Add existing elements" tools on State & StateDefinition graphical elements.

  • #254 [diagrams] Add delete from model tool on containment edges

New features

  • #147 [general-view] Refactor compartments of RequirementDefinition and RequirementUsage to better fit the specification and examples.

  • #151 [diagrams] Add "Become nested" edge tools for AttributeUsage, ItemUsage, PartUsage and PortUsage.

  • #154 [diagrams] Add creation node tools inside existing usage elements.

  • #163 [diagrams] Add composite edges between usage and compartment content

  • #165 [general-view] Handle OccurrenceDefinition and OccurrenceUsage in General View diagram

  • #177 [diagrams] Add reconnect tools for composition edges

  • #180 [diagrams] Handle Allocation definition and Allocation usage

  • #196 [export] SysML standard serialization format

  • #219 [diagrams] Handle ConjugatedPortDefinition in diagrams, Explorer and Details View.

  • #234 [interconnection-view] Handle InterfaceUsages edges between PortUsages in InterconnectionView.

  • #175 [diagrams] Add the State Transition view diagram

  • #242 [diagrams] Handle Inherited features in features compartments.

  • #217 [diagrams] Handle Accept Action Usage

  • #285 [interconnection-view] Add rotative images for PortUsage in Interconnection View

  • #297 [diagrams] Handle Succession as edge between Actions inside action flow compartment

v2024.3.0

Breaking changes

  • Refactor Node Descriptions Providers in General View: all Definitions and Usages Node Descriptions Providers (e.g. PartDefinitionNodeDescriptionProvider or ItemUsageNodeDescriptionProvider) have been replaced by two new Node Descriptions Providers: DefinitionNodeDescriptionProvider and UsageNodeDescriptionProvider.

  • Switch to Sirius Web 2024.3.0: GeneralViewRegistryConfigurer has been renamed to GeneralViewDescriptionProvider as it now implements IEditingContextRepresentationDescriptionProvider instead of IRepresentationDescriptionRegistryConfigurer. Same for InterconnectionViewRegistryConfigurer. SysMLv2ObjectService has been renamed into SysMLv2LabelService as it now implements ILabelServiceDelegate instead of IObjectServiceDelegate.

  • #93 [diagrams] Refactor diagrams code with creation of the diagram-common-view module to gather all cross diagram tools:

    • DescriptionNameGenerator is no longer a static class with static methods. There should be one name generator per diagram owning the diagram prefix used to prefix all descriptions for this diagram (for instance GVDescriptionNameGenerator)

Dependency update

  • #71 [releng] Add commons-io 2.11.0 dependency explicitly in syson-application-configuration.

  • Switch to Sirius Web 2024.3.0

Bug fixes

  • #118 Subclassification edge has been broken during this release

Improvements

  • #75 [services] Improve direct edit. The direct edit of labels in diagrams now handles partial edition. The partial edit allows to:

    • "newName" → set a new name to the element

    • "newName :" → set a new name and delete typing

    • "newName :>" → set a new name and delete subsetting/- subclassification

    • "newName :>>" → set a new name and delete redefinition

    • "newName =" → set a new name and delete feature value

    • "newName []" → set a new name and delete the multiplicity range

    • ": newType" → set a new type

    • ":> newType" → set a new subsetting/subclassification

    • ":>> newType" → set a new redefinition

    • "= newValue" → set a new value

    • "[newRange]" → set a new range

  • #78 [explorer] Review new objects candidates in Explorer view context menu. Only provides candidates that will make sense. Also allow the creation of elements with their containing Membership in one click.

  • #80 [diagrams] Add recursive version of the "Add existing elements" tool.

  • #86 [general-view] Improves Package headers' width to better handle longer labels and prevents Package children from overlapping the Package body’s west border.

  • #52 [syson] Add all KerML and SysML standard libraries.

  • #88 [diagrams] Improves creation tool names by adding spaces between type words and removing "Usage" from tool names.

  • #91 [general-view] Add NodeTools to create compartment elements from the compartment’s parent node. For example, it is now possible to create an AttributeUsage in the PartDefinition palette.

  • #93 [diagrams] Reorganize General View diagram palette with several tool sections.

  • #105 [details] In the Details view, display the standard libraries in Reference Widget’s model browser dialog. Also remove the standard libraries elements in Reference Widget’s candidates (when you click in the background part of the widget) for now as it leads to performance issues. They will be only accessible through the model browser dialog.

  • #112 [services] Improves getAllReachable() util service, allowing to reduce the time being spent to retrieve the elements of a given type.

  • #134 [diagrams] Add FeatureTyping Edge tool, in the same way as other existing links such as Subclassification, Redefinition…​

  • #137 [details] Add kind property from RequirementConstraintMembership on Constraint core properties.

New features

  • #97 [explorer] Add a filter allowing to hide membership elements in the Explorer view.

  • #98 [explorer] Add filters allowing to hide KerML/SysML libraries in the Explorer view.

  • #93 [diagrams] Add the following new diagrams:

    • Action Flow view

    • Requirement view

  • #140 [import] It is now possible to import SysMLv2 textual files into SysON, through the existing document upload modal.

v2024.1.0

Breaking changes

  • #52 [services] All findUsageByName and findDefinitionByName method have been replaced by the new findByNameAndType in org.eclipse.syson.services.UtilService.

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

Dependency update

  • Switch to Sirius Web 2024.1.1 (Please do not use new Portal representation introduced by this release of Sirius Web, it will be removed in SysON soon (see this ticket in Sirius Web)[https://github.com/eclipse-sirius/sirius-web/issues/3013], when Sirius Web will allow to configure which representations can be used or not in Sirius Web-based applications).

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

  • Switch to vite 4.5.2

New features

  • #48 [general-view] Display help background message on empty general-view diagram.

  • #52 [syson] Add support for SysMLv2 standard libraries. Only 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 may have partial content. Other libraries and complete existing libraries will be added in future releases.

  • #60 [syson] Add support for automatic imports.

v2023.12.0

Architectural decision records

  • [ADR-000] Adopt ADRs

  • [ADR-001] Support direct edit in diagrams

New Features

  • This is the first release of SysON. It contains:

    • The ability to create and edit SysMLv2 models.

    • The ability to create and edit General View diagrams on Package elements. Only some elements can be created/edited in this diagram:

      • Attribute Definition

      • Attribute Usage

      • Enumeration Definition

      • Enumeration Usage

      • Interface Definition

      • Interface Usage

      • Item Definition

      • Item Usage

      • Metadata Definition

      • Package

      • Part Definition

      • Part Usage

      • Port Definition

      • Port Usage

    • The ability to create and edit Interconnection View diagrams on Part Usage elements.

    • An example of a SysMLv2 model named Batmobile, accessible from the homepage.

    • The ability to download and upload SysMLv2 projects.