On behalf of the team and everyone who has contributed, we are happy to announce that Sirius Web 2024.5.0 has been released and is now available. You can find the complete list of bug fixes and improvements in the changelog on Github.
Here are some of the latest features integrated in Sirius Web.
Diagrams
- We switched to a new (frontend) implementation of our diagrams based on React Flow in 2024.3.0. As we are gaining expertise with this new library, we are improving this implementation, in particular in terms of performance. 2024.5.0 introduces huge performance improvements on diagrams with up to 3 times faster to load and render medium-sized diagrams, and much smoother interactions on already loaded diagrams, e.g. when moving or resizing nodes.
- The View DSL now supports configuring if a newly created node should be initially collapsed, hidden or faded with three new expressions:
- This is used for example in SysON (a SysML v2 modeling tool implemented with Sirius Web): when creating a new Part, its different (empty) compartments are hidden by default, but are revealed when the user creates an element in them, or explicitly if the user asks to reveal them:
- Related to this, new standard Java services are available to control these aspects of the nodes from your own tools. They are exposed through the new variable
diagramServices
that is available inside the body of tools. For example to hide the node on which a tool is invoked, it can executeaql:diagramServices.hide(Sequence{selectedNode})
. Seeorg.eclipse.sirius.components.collaborative.diagrams.api.IDiagramServices
for the full API available.
These APIs are used by the new Hide/Show tool section automatically added to the palette of new nodes:
- And the resulting tool section, here on a SysON diagram:
- Nodes can now be configured to have their label either inside or outside, or even one of each. In this first version, the only available positions are top_center for the inside label and bottom_center for the outside label.
- When configuring the style of a node, the background can be set to any CSS-compatible background property, instead of just a plain color. In particular, this can be used to configure gradient backgrounds. For example if using as background a color whose value if linear-gradient(#e66465, #9198e5), the node will look like this:
- Both inside and outside labels now have a configurable overflow strategy, with three possible values:
NONE
: (the default): the full text of the label is always visible; the node width expands as needed.WRAP
: the label will wrap on multiple lines if the node is not wide enough.ELLIPSIS
: if the node is not wide enough to display the whole label, the label’s text is clipped with an ellipsis (“…”).
-
Below you can see the effect of each strategy when a node is resized. Note that with the NONE (default) strategy, the behavior is different between outside labels (the node can be made narrower than the full label width) and inside labels (it is not possible to resize the node to be narrower than the label).
- Diagrams can now configure the main layout direction to use for the Arrange All operation:
- For example here is the same diagram arranged using the “RIGHT” direction and then using the “DOWN” direction
- Arrange All and Distribute Elements actions now correctly take pinned nodes into account: pinned elements now correctly keep their positions after an Arrange All, and the other elements are arranged to avoid overlap with them.
- Helper lines are now also available when resizing a node, not only when moving them.
- The layout tools (available when multiple nodes are selected) are now displayed in a column (with their name) rather than a row with only the icons.
- When an edge is connected to a custom node (here an ellipse node), it now attaches to the actual visual border of the node instead of its rectangular bounding box.
Forms
- A new DateTime widget has been added. It can be configured to display/edit either a date, a time, or both.
- The layout of the Details View has been improved and is now more compact. Here is the Details View for the same element in Sirius Web 2024.3.0 (left) and 2024.5.0 (right):
Sirius Web 2024.3 | Sirius Web 2024.5 |
Gantt
- The Gantt diagram representation has also been improved with the ability to create a dependency between two tasks directly in the Gantt representation. In the video below, we add a dependency from the “Front” task to “Back” directly from the graphical representation:
- It is now possible to re-arrange tasks and sub-tasks directly from the left side of a Gantt representation (the tabular part). For example here we switch the order between the “Front” and “Back” task, and decide to integrate the “Review” tasks as a part of the “Code Developement” task:
- It is now possible to collapse or expand a ground task by double-clicking on it:
- It is possible to scroll horizontally by holding Shift while using the mouse wheel. The zoom level can be set using the selector in the toolbar or by holding Ctrl (of Cmd on macOS) and using the mouse wheel:
Under the hood
- Starting with v2024.5.0, Sirius Web now ensures seamless upgrades of View models and representations. When upgrading to a new version of Sirius Web, the View definitions and representations found in the database will automatically be migrated (if required) to the new format expected by the new version. In practice this means these definitions and representations (e.g. diagrams) created using earlier versions will no longer be lost. See
org.eclipse.sirius.components.emf.migration.api.IMigrationParticipant
for the API.
The underlying mechanism is similar to the one used by Sirius Desktop, and can also be used by application developers to handle the migration of their own models (to be confirmed).
- Work on the new architecture started in 2024.3 has continued and is reaching a point where existing applications based on Sirius Web can start migrating to this new architecture. It is on track to completely replace the older implementation for 2024.7.0, with all the obsolete components marked as deprecated in that version for actual removal in 2024.9.0.
- We’ve improved the APIs used to upload documents inside a project. It is now possible to handle arbitrary files as input (it’s up to the backend implementation to decide how to interpret them), and to return a detailed report to the end-user (that will be displayed on the front) upon successful upload/import.
For example in SysON it is possible to import a SysMLv2 model from a text file following the standard SysMLv2 syntax. The report produced will include any warning or errors found in the imported file:
Obeo Cloud Platform
Obeo Cloud Platform is a commercial offering which extends Sirius Web with additional enterprise level capabilities to secure your deployment.
- Obeo Cloud Platform (OCP) has been largely rewritten to leverage the new Sirius Web architecture. OCP now sits on top of Sirius Web as an extension which adds new enterprise level capabilities. This will enable us to move faster on adding new features in OCP. Additionally, it also means any Sirius Web-based application (e.g. SysON) can be deployed with the proprietary OCP modules and automatically get the corresponding features.
We have initial version of the first two such extensions:- Support for authentication using OAuth2, delegating to a compliant IAM implementation like for example Keycloak.
- Support for project history management, with automatic recording of all changes in a project, the ability to “tag” specific revisions and to revert to any previous state of a project.
- These two extensions are being extended to support (respectively) fine-grained permission management using User Management Access (UMA) and the ability to compare two project revisions and see what has changed between them.
To find additional information about Sirius Web, please have a look at our website. You can also learn more about the previous releases on this blog.