-
Notifications
You must be signed in to change notification settings - Fork 45
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[doc] Add shape and ADR for the support of libraries
Signed-off-by: Axel RICHARD <axel.richard@obeo.fr>
- Loading branch information
1 parent
5d2e1cc
commit 241377b
Showing
2 changed files
with
84 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
= ADR-124 - Add support for libraries | ||
|
||
== Context | ||
|
||
Users want to store and have access to read only data (a.k.a libraries). | ||
|
||
== Decision | ||
|
||
=== Backend | ||
|
||
Introducing a new `IEditingContextProcessor` allowing to execute operations on editing context before and after its loading in `EditingContextSearchService`. | ||
|
||
``` | ||
public interface IEditingContextProcessor { | ||
void preProcess(IEditingContext editingContext); | ||
void postProcess(IEditingContext editingContext); | ||
} | ||
``` | ||
|
||
This will allow specifiers to load as many resources as they want in the resource set of an editing context while loading it. | ||
|
||
If these resources does not have the scheme `sirius://`, they will not be considered as documents in Sirius Web. | ||
|
||
Libraries as defined in the context above should be handled by `IEditingContextProcessor`. | ||
|
||
Specifiers will be allowed to declare as many `IEditingContextProcessor` as they want. | ||
|
||
For the version number of a library, its the responsibility of the specifier to handle it from an `IEditingContextProcessor`. | ||
|
||
=== Frontend | ||
|
||
Nothing to do in a first version. | ||
In a second version, users should be able to view the libraries in the Explorer. | ||
|
||
== Status | ||
|
||
Work in progress |
47 changes: 47 additions & 0 deletions
47
doc/iterations/2024.1/shapes/add_support_for_libraries.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
= Add the support for libraries | ||
|
||
== Context | ||
|
||
Users want to store and have access to read only data (a.k.a libraries). | ||
|
||
== Key Result | ||
|
||
Users should be able to click on a template/project and have in their projects a set of documents with objects referencing objects from libraries. As a result, without even a single interaction, users should be able to have a valid resource set. | ||
|
||
The libraries are immutable. | ||
|
||
== Solution | ||
|
||
1. When declaring templates, specifiers should be able to specify a list of libraries that will be accessible in the projects created from the templates. | ||
|
||
2. The `Blank project` is not a template. So with the proposed solution, it will not be possible to use libraries in a `Blank project`. | ||
To handle this specific case of the `Blank project`, it should be possible to add libraries to every project. | ||
This will be done programmatically, by the specifier. | ||
|
||
3. The objects from libraries and the libraries should be visible somewhere from a project (e.g. Explorer view, ...). | ||
|
||
4. Once a project created, users/specifiers should be able to modify the list of libraries associated (i.e. load/unload) to a project. | ||
|
||
5. Libraries have version number. | ||
At the end, it should be possible to update the version of a library for a project. | ||
|
||
=== Breadboarding | ||
|
||
Same UI as before. | ||
|
||
=== Cutting backs | ||
|
||
In a first iteration, the objects from libraries and the libraries will not be visible. | ||
In a first iteration, it won't be be possible to update the version of a library for a project. | ||
|
||
== Rabbit holes | ||
|
||
A template may add a lot of libraries, and thus a lot a model elements. | ||
These model elements will be accessible in the reference widgets from the Detail view. | ||
In some case the list of elements accessible in the reference widgets will be huge. | ||
Specifiers may have to programmatically filter the candidates of reference widgets. | ||
Note that this is also the case without the introduction of libraries, but libraries may emphasize the case. | ||
|
||
== No-gos | ||
|
||
N.A. |