-
Notifications
You must be signed in to change notification settings - Fork 0
Doc: Core, Bedrock and Distribution layers #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for this summary, I think it looks good.
I have a few small comments and a little English language pedantry 😉
## Context | ||
|
||
As a community we would like to have a stable and UI technology agnostic API to use in our plugins and build on top of it. | ||
Current, the name "OpenSCD Core" can lead to misunderstandings. It not only contains and API but it provides a ready-to-go UI, the plugin loading mechanism and other things. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Current, the name "OpenSCD Core" can lead to misunderstandings. It not only contains and API but it provides a ready-to-go UI, the plugin loading mechanism and other things. | |
Current, the name "OpenSCD Core" can lead to misunderstandings. It not only contains an API but it provides a ready-to-go UI, the plugin loading mechanism and other things. |
|
||
As a community we would like to have a stable and UI technology agnostic API to use in our plugins and build on top of it. | ||
Current, the name "OpenSCD Core" can lead to misunderstandings. It not only contains and API but it provides a ready-to-go UI, the plugin loading mechanism and other things. | ||
However, we still need an API and specification, and a a quick way to create and configure a new distribution of OpenSCD. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
However, we still need an API and specification, and a a quick way to create and configure a new distribution of OpenSCD. | |
However, we still need an API and specification, and a quick way to create and configure a new distribution of OpenSCD. |
|
||
2. Bedrock: You can use a given Bedrock to build your own OpenSCD distribution. It is a Web Component that you can easily deploy and configure. If you need more or different functionality that you cannot achive by configuring a Bedrock, you can create your own. | ||
|
||
3. Core: it is mainly for plugin-, bedrock- and distribution developers in the ecosystem to help each other create plugins that are compatible with every distributions and also to create distributions that are compatible with most of the plugins. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3. Core: it is mainly for plugin-, bedrock- and distribution developers in the ecosystem to help each other create plugins that are compatible with every distributions and also to create distributions that are compatible with most of the plugins. | |
3. Core: it is mainly for plugin-, bedrock- and distribution developers in the ecosystem to help each other create plugins that are compatible with every distribution and also to create distributions that are compatible with most plugins. |
|
||
## Consequences | ||
|
||
- With the new, simpler Core we can agree on the common API on the code level |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- With the new, simpler Core we can agree on the common API on the code level | |
- With the new, simpler Core we can agree on the common API at the code level |
|
||
- With the new, simpler Core we can agree on the common API on the code level | ||
- Other components and layers are not bound to a specific UI technology | ||
- We aggre on what belongs into the core |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- We aggre on what belongs into the core | |
- We agree on what belongs into the core |
|
||
1. Distribution: It is for distributors who want to create a new instance of OpenSCD and tailor it for specific needs through possible configurations. | ||
|
||
2. Bedrock: You can use a given Bedrock to build your own OpenSCD distribution. It is a Web Component that you can easily deploy and configure. If you need more or different functionality that you cannot achive by configuring a Bedrock, you can create your own. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we describe what is in bedrock with some concrete examples? For instance:
- Providing information to plugins for state management
- Provide basic user interface for undo and redo
- Provide identity management and back-end integration
- Provide overall look and feel for distribution
Does it also include
- Plugin loading? Or is that the distribution? Or is that core?
└──────────┘ | ||
``` | ||
|
||
1. Distribution: It is for distributors who want to create a new instance of OpenSCD and tailor it for specific needs through possible configurations. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is in a distribution - is it just a collection of plugins built on top of bedrock or is it more? Does it include bundling/packaging?
Should we show plugins here in relation to a distribution? I feel they should be in this diagram somewhere...
```txt
┌──────────────────────┐ ┌─────────┐
│ Distribution │<--│ Plugins |
└──┬────────────────┬──┘ └─────────┘
│ Bedrock │
└──┬──────────┬──┘
│ Core │
└──────────┘
No description provided.