-
Notifications
You must be signed in to change notification settings - Fork 121
Open
Labels
coreIssue related to BlueOS-coreIssue related to BlueOS-coreenhancementNew feature or requestNew feature or request
Description
Summary of prior internal discussion:
- A plugin/add-on would be just a file or folder that gets put in a particular place
- i.e. include a file with an extension without having to create a whole docker container
- this is valuable for making it easier to get started quickly with things, making small contributions / additions, as well as reducing unnecessary resource usage
- useful for things like
- Cockpit widgets / views / joystick configurations
- documentation (e.g. for core: frontend: ardupilot-manager: link to firmware docs #1646)
- themes (e.g. for core: frontend: add theme/style configuration interface #1938)
- 3d models (e.g. for Allow 3d Model overrides #1440)
- shared data (e.g. for support offline map data that can be shared by extensions #1820 and core: frontend: multi-language support #1937)
- ArduPilot lua scripts (relevant to core: frontend: vehicle-setup: add page for Lua scripts #2372)
- i.e. include a file with an extension without having to create a whole docker container
- Registered to a parent docker image, which can be either
coreor an installed extension- For extensions, stored in the persistent directory available for the extension (per File system: explicitly support extensions #1640)
- We could locally keep track of installed sub-extensions using a json file or sqlite database, recording their versions, locations, and compatibility requirements
- Alternatively they could provide their own metadata files
- Can be provided by the original developer or by the community
- Installation would need to provide a differentiation, for "official" vs "community" add-ons
- How does one get one?
- Available on Bazaar via the extensions manager, like a regular extension
- Can be bundled together with an extension
- Some file system examples:
~/core/~/extensions/cockpit/(empty)~/extensions/cockpit/add-ons/blue-theme/style.css(Cockpit can use the files in here to override its theme)~/extensions/cockpit/docs/index.md(documentation)
Explained again:
- BlueOS Cloud has a registry of docker images (
core+ extensions) with versions - For each docker image, have associated add-ons for each version
- BlueOS Local shows available add-ons for the extensions and allows user to install them, overlaying those on the file system
Extension with add-on example:
- Install PingViewer extension, with sonar driver inside (Full BlueOS extension, with API and UI)
- That extension adds files to
~/extensions/cockpit/add-ons/PingViewer/widget.vue - Cockpit can now have a PingViewer widget that accesses data from
/xyz/API
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
coreIssue related to BlueOS-coreIssue related to BlueOS-coreenhancementNew feature or requestNew feature or request