Skip to content

Commit 8474afb

Browse files
gdanielAxelRICHARD
authored andcommitted
[doc] Add a shape to support library publication
Signed-off-by: Gwendal Daniel <gwendal.daniel@obeosoft.com>
1 parent 76c1551 commit 8474afb

File tree

5 files changed

+77
-0
lines changed

5 files changed

+77
-0
lines changed

CHANGELOG.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
=== Shapes
66

7+
- Add support for library publication
8+
79
=== Breaking changes
810

911
=== Dependency update
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
= Add support for library publication
2+
3+
== Problem
4+
5+
SysON doesn't provide an **in-application** way to import models from other projects.
6+
The current import/export mechanisms rely on generating a textual SysML file, and uploading such file in a project to import it.
7+
8+
When exported models are used as shared reusable components, it is the responsibility of the stakeholders to:
9+
- Store the shared models in an external location
10+
- Ensure that every user is working on the same version of the shared model
11+
- Coordinate to export a new version when needed, and import it in all the dependent projects
12+
13+
These processes are error-prone, and could be more controlled if they all happened inside the application.
14+
15+
== Key Result
16+
17+
SysON users should be able to:
18+
19+
- Publish a library with a given version number and description
20+
- See published libraries
21+
22+
== Solution
23+
24+
The command palette provides a command to publish libraries from the current project.
25+
This command opens a dialog asking the user to provide the version and the description of the library they want to publish.
26+
27+
The publication process creates a single, self-contained library containing all the SysML models stored in the current project.
28+
The library name is set with the name of the current project.
29+
Note that the created library does not contain the SysML and KerML Standard library models since they are automatically imported in every SysML project.
30+
31+
It is not possible to publish a library with the same projectId/name/version as an existing library (this constraint is enforced by Sirius Web).
32+
33+
A page containing a table presenting all the libraries published on the server is accessible at the `<syson_url>/libraries` URL. This page can also be accessed via a button in the top-right menu of the navigation bar.
34+
35+
=== Scenario
36+
37+
1. User publishes a library from their project
38+
- The user creates a new project
39+
- The user creates SysML elements in the project
40+
- The user opens the command palette and selects the publish command
41+
- The user fills requested information in the dialog (version number, comment, etc) and presses _Publish_
42+
- A message is displayed indicating that the publication was successful
43+
- The user can navigate to `/libraries` to view the library published by the project
44+
45+
2. User tries to publish a library with an existing version
46+
- The user creates a new project with SysML elements inside it
47+
- The user publishes a library with version `X` from the project (see scenario 1)
48+
- The user publishes again a library with version `X` from the project
49+
- An error message is displayed indicating that the library with the given version already exists
50+
51+
=== Breadboarding
52+
53+
Publish project command in the command palette
54+
55+
image:images/add_support_for_library_publication_01.png[Publish project command in the command palette]
56+
57+
Publication dialog prompting the user to enter a version and description
58+
59+
- The _See published libraries_ link opens a page in a new tab containing the list of published libraries on the server.
60+
61+
image:images/add_support_for_library_publication_02.png[Publication dialog prompting the user to enter a version and description]
62+
63+
Libraries page showing all the published libraries in the server
64+
65+
image:images/add_support_for_library_publication_03.png[Libraries page showing all the published libraries in the server]
66+
67+
=== Cutting backs
68+
- (Nice to have) The current published version of a model is displayed in the explorer next to its name.
69+
70+
== Rabbit holes
71+
72+
== No-gos
73+
74+
This shape doesn't address the issue of importing a published model.
75+
This will be done in a future shape.
84.6 KB
Loading
82.5 KB
Loading
11.7 KB
Loading

0 commit comments

Comments
 (0)