Skip to content

Latest commit

 

History

History
652 lines (573 loc) · 58 KB

CHANGELOG.adoc

File metadata and controls

652 lines (573 loc) · 58 KB

Changelog

v2025.1.0 (work in progress)

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.

Dependency update

  • [releng] Switch to Sirius Web 2024.11.7

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.

Improvements

  • #829 [metamodel] OccurrenceUsag#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.

New features

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

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 udpate 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)[eclipse-sirius/sirius-web#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.