-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
[RfC] new openHAB marketplace structure proposal #8448
Comments
In the other topic @mvalla posted feedback. I've inlined those comments here:
I've added the
I tried to limit the amount of additional information and would assume if screenshots are relevant they should be in the readme. Having screenshots also would mean the user interface must display them somewhere, and I don't know where. Or are you thinking about screenshots like in Android marketplace?
Might be a good addition.
Can you give an example? I'm not sure if I understand what your mean?
|
Yes, an UI on the new OH 3 UI will show the marketplace bindings and perhaps a web UI will show them from a browser. Yes, screenshot like in Android and Eclipse marketplace. Not maybe urgent, but nice to have.
like using as value the GitHub username of the submitter, so that I can search/filter all bindings from the same developer. Again not urgent but nice to have. |
Screenshots might be interesting if the marketplace also would support ui widgets. So might be interesting. Possible just have the option to add additional image files with a specific naming convention. We'll see how the ui itself will develop on this part. There is an entry |
First a disclaimer. I am not a Java programmer. i like the ideas used in Home Assistant where they have a curated/moderated cataloged repo for trusted community addons as well as permitting personal repos of addons. That it much more open and community focused than requiring either inclusion in the distribution or manual installation. |
I'd like to float the idea, of considering what's HABPanel is doing for its widget gallery and use the Discourse API on community.openhab.org instead of a repository to index the community add-ons. Basically what this does is transform the topics in a category with the widgetgallery tag i.e. this output: http://demo.openhab.org:8080/rest/habpanel/gallery/community/widgets http://demo.openhab.org:8080/rest/habpanel/gallery/community/widgets/103475 There the code automatically seeks a *.widget.json attachment in the OP (or a GitHub link), there could be something similar here, i.e. mandating a marketplace tag and properly formatted I know it's a little unconventional but it's had its little success and IMHO the following advantages for a community-driven gallery:
|
Ideally there would be a way to include addons, through the REST API without tying to the Java programming language. That is the power of a REST API. |
Thanks @Hilbrand for taking this challenge 👍 . Just a few comments:
I would not suggest doing so. So far, add-ons are fairly cleanly defined. They belong to one of the (few) pre-defined categories, are implemented as an OSGi bundle with a strict naming convention (
Although I was always suggesting to go for e Git repo, I quite like @ghys' proposal and he's clearly got a point that this approach has already been proven to be a viable option as it has indeed gained quite some popularity among our community. |
@ghys and @kaikreuzer I do like the idea of using discourse. It did trigger me on 2 things. First the idea behind the addons.json is that it contains all information relevant to the ui, but I didn't mention this here. To know what information is needed by the ui I think we might need to do 2 things. One is to write down what information is relevant for the ui and two what information needs to be in the addon.json that is not provided via the discourse api and thus might be needed in the addons My proposol is a first attempt to write this down. So any feedback on this is very appreciated. On a related note. I did some experimenting some months ago with the rest api and found that the api for the marketplace is slightly different from the api for the bindings provided by openHAB. This makes it difficult to use the same functionallity in the ui as it needs slightly different implementations. If we could change this such that we could use the same api interface specification for provied addons as marketplace addons the ui would benefit from this too. (And while writing this I realize I miss an unique addons id in my addons.json,. Because one feature in my proposel for example is that I also wanted to address the lack of versions that is currently in the eclipse marketplace. I always found this missing. For example I would like the marketplace to offer an updated version of the binding availble for testing. With an addon specific UID the UI can show them as 1 entry with a selection box to allow the user to easily select a specific version of an addon). This brings me to my second trigger. A more fundamental choice between a discourse based vs git based marketplace is that a discourse based is very bound to openHAB, or at least has a higher entry point if someone else want to provide such a service. While a git based has a lower entry for others to provide such a marketplace. This could be interesting for others to host their own. I don't necessarily favor this ability. It's just that it's the option to make this possbile. So in summary I think there might be a use case for having 2 different type of markteplace infrastructures. And we might decide to use which infrastructure based on if we have a specific type of add-ons only available via a marketplace (like the habpanel widgets) or have a hybrid structure (like bindings and the Eclipse marketplace is). P.s. @kaikreuzer I meant by 'addon in the broadest way' not to redefine the word addon, but I don't now of any other word to cover mutliple different types, from bindings, to rule template, to widgets, etc. So i you know what might be a beter wordt that covers this I would use that. |
As someone who really really wants a marketplace where he can deploy rule templates and rules helper libraries one really challenging feature I'd love to see that I've not seen mentioned is dependencies. For example, I've now a set of Python libraries that I'm maintaining and making available for those who want to use them. But they depend on the Helper Libraries and the Jython addon Scott maintains. While it would be great to have the marketplace see these dependencies and make sure they are automatically installed a la apt and yum, at a minimum I would hope the dependencies to be documented in the addon.json and rendered in the UI. I expect this would be mostly a concern with stuff like HABPanel widgets and rule templates, but it feels like something that should be acknowledged if not addressed. One other note, if we choose Discourse as the distribution mechanism we may need to change the setting that closes new theads after a month of no activity for those marketplace add-on posts. This is especially relevant if we want to have that post also serve as the help thread. |
Not wanting to make things more complicated, but we so far have only talked about building a marketplace to browse stuff. I think we will hit the real problems when talking about installing entries - all our different categories (add-ons, rule templates, UI widgets, etc.) have very specific requirements/technologies on how they are installed. They might also have their own mechanisms for handling dependencies (like e.g. Karaf features do). I am wondering, whether those different categories qualify for more or less independent marketplaces (while clearly the "openHAB Marketplace" would be a bracket over all of them). But the way they are presented, the fields that needs to be provided, the metadata that the installation mechanism requires, etc. might be very different for all of these. |
Wouldn't UI Widgets be specific to the UI which would be independent of OH, just accessing OH through the REST API? It appears to me UI & UI widgets are VERY different from the other categories. |
This issue has been mentioned on openHAB Community. There might be relevant details there: https://community.openhab.org/t/continue-maintaining-my-binding-to-the-latest-branches/114010/16 |
The new Marketplace is open for business! 🙂 |
In had this posted before in #6673, but it felt a bit buried so I moved it to it's own issue. With the idea to update it based on feedback
Here is a proposal for the new market place extension.
The idea is a marketplace is a git repository. The marketplace extension will clone this repo and regulary update to get the latest updates of that repo. It should be possible to configure one or more git repositories to get add-ons from. The repository only contains meta data and will not host the add-ons.
The word 'add-on' is intended in the broadest way. Theoretically an add-on could also be a python rule. (Except for the fact that different types of add-on might need a different implementation and thus the definition of an add-on is practically terms limited by what is supported by the implementation).
In the repository there will be a
repository.json
file and a directory per add-on:Each directory contains a
addon.json
file and optional alogo.png
file. we might want to dictate the logo size. Therepository.json
contains some generic information about the repository. For example:The
addon.json
file contains the meta information about the add-on. The idea is that it supports multiple versions.Accepted
maturily_level
values:alpha
,beta
,production
My questions are:
I'm working on a poc for this approach so any feedback would be great.
P.s. the approach and structure is not completely original, but inspired by another add-on repository 😉
The text was updated successfully, but these errors were encountered: