From 6bdd2c7fec224e0afac391a9cb666eaa84ed64fa Mon Sep 17 00:00:00 2001 From: ES-Alexander Date: Sat, 31 Jan 2026 04:50:18 +0800 Subject: [PATCH 1/3] README: remove unstable warning Extensions are no longer marked as beta in BlueOS. --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index ba933c65..63d755fe 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,5 @@ # BlueOS-Extensions-Repository -> **Warning** -> This is still very experimental and subject to changes! - This is a repository for metadata of BlueOS Extensions. - [Documentation](https://blueos.cloud/docs/latest/development/extensions/) From a82efeaace8972c8db447e382832fb7916c76148 Mon Sep 17 00:00:00 2001 From: ES-Alexander Date: Sat, 31 Jan 2026 04:55:48 +0800 Subject: [PATCH 2/3] README: link to community organisation --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63d755fe..ac4e8478 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ This is a repository for metadata of BlueOS Extensions. - [Documentation](https://blueos.cloud/docs/latest/development/extensions/) - [Available Extensions](https://docs.bluerobotics.com/BlueOS-Extensions-Repository) +- [Community Extensions, Tools, and Examples](https://github.com/BlueOS-Community/) For publishing a new extension, open a pull request to this repository with the following structure: From 03b4c5f78e2633c674d1b13b68a508f58297ce3a Mon Sep 17 00:00:00 2001 From: ES-Alexander Date: Sat, 31 Jan 2026 05:08:21 +0800 Subject: [PATCH 3/3] README: general cleanup --- README.md | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index ac4e8478..532ef6c9 100644 --- a/README.md +++ b/README.md @@ -6,29 +6,28 @@ This is a repository for metadata of BlueOS Extensions. - [Available Extensions](https://docs.bluerobotics.com/BlueOS-Extensions-Repository) - [Community Extensions, Tools, and Examples](https://github.com/BlueOS-Community/) +--- + For publishing a new extension, open a pull request to this repository with the following structure: ## Data in this repository -/repos/yourcompany/yourextension/metadata.json -```json -{ - "name": "The Name of Your Extension", - "website": "https://your.extension.website.com/", - "docker": "your-dockerhub-user/your-extension-docker", - "description": "A brief description of your extension. This will be shown in the store card." -} -``` - -/repos/yourcompany/company_logo.png -Your company logo - -/repos/yourcompany/yourextension/extension_logo.png -Your extension logo +1. Extension registration metadata: `/repos/yourcompany/yourextension/metadata.json` + ```json + { + "name": "The Name of Your Extension", + "website": "https://your.extension.website.com/", + "docker": "your-dockerhub-user/your-extension-docker", + "description": "A brief description of your extension. This will be shown in the store card." + } + ``` +1. Your Extension logo: `/repos/yourcompany/yourextension/extension_logo.png` +1. Your company logo: `/repos/yourcompany/company_logo.png` + - You only need to add this the first time you add an Extension -## Data in dockerhub +## Data in DockerHub -Additionally, we have versioned data. This data should be in each of your dockerhub tags, and use the following format: +Additionally, we have versioned data. This data should be in each of your DockerHub tags, and use the following format: ```Dockerfile LABEL version="1.0.0" @@ -79,7 +78,7 @@ LABEL tags='[\ - `type` is a primary categorisation of the extension, and should be one of: - "device-integration" - "example" - - "theme" + - "tool" - "other" - `tags` is a collection of relevant tags for filtering, which should be lowercase alpha-numeric with dashes - limit of 10 per extension @@ -89,7 +88,7 @@ Some additional information and examples are available in the ## How this repo works - Every time this repo changes, a Github Action runs and goes through all the .json files in here. For each of them, it reaches out to dockerhub and fetches all the available tags, extracting the metadata in LABELS and crafting a complete `manifest.json`, which is stored in this repo's `gh-pages` branch. +Every time this repo changes, a Github Action runs and goes through all the `.json` files in here. For each of them, it reaches out to DockerHub and fetches all the available tags, extracting the metadata in LABELS and crafting a complete `manifest.json`, which is stored in this repo's `gh-pages` branch. There is also a [website](https://docs.bluerobotics.com/BlueOS-Extensions-Repository) that gets generated, to show which extensions are currently available in the store.