# Marketplace Versioning Issues

**URL:** <https://community.openhab.org/t/marketplace-versioning-issues/169748>\
**Category:** Marketplace\
**Created:** [July 11, 2026, 11:42am UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748 "2026-07-11T11:42:35Z")\
**Posts on this page:** 17\
**Page:** 2

<div class="post-metadata">

**Author:** ![rlkoshak](https://community.openhab.org/user_avatar/community.openhab.org/rlkoshak/32/75251_2.png) [@rlkoshak](https://community.openhab.org/u/rlkoshak)\
**Post date:** [July 11, 2026, 4:01pm UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/21 "2026-07-11T16:01:33Z")

</div>

Well I royally messed that up. The first post ended up as post 20. 😿

> [@Nadahar](#):
>
> edit: The problem with the version range might simply be that the `,` should be a `;`.

I tried that on the Presense Simulation post and it still shows the version. But I also tried [5.2.0.0,5.9.9.9] at one point and it still showed the version numbering. But I didn’t go back to figure out why. Maybe the semicolon was needed.

 ![image](https://community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/8/3/83b1b2fe8e3d2625be70c88269d2bb4063301639.png)

Show potentially incompatable is turned off and show unpublished is turned off in my settings.

---

<div class="post-metadata">

**Author:** ![Nadahar](https://community.openhab.org/user_avatar/community.openhab.org/nadahar/32/194556_2.png) [@Nadahar](https://community.openhab.org/u/Nadahar)\
**Post date:** [July 11, 2026, 4:00pm UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/22 "2026-07-11T16:00:59Z")

</div>

> [@Presence Simulation \[5.2.0.0;5.9.9.9\]](https://community.openhab.org/t/presence-simulation-5-2-0-0-5-9-9-9/169742/21):
>
> It seems to be half working. It does show up in 5.2 when I have the market place settings to only show published entries. But it is still showing the version number. I’ll try the semicolon instead of comma.

It shows up because it’s considered to not have a version range ⇒ show in all versions.

> [@Presence Simulation \[5.2.0.0;5.9.9.9\]](https://community.openhab.org/t/presence-simulation-5-2-0-0-5-9-9-9/169742/21):
>
> Not everyone who does so will be much more than users. Especially now that creating templates has become a lot easier with the yaml file format.
> 
> I have to look up the maven versioning docs every time I want to do something different. In the end I usually just copy something and 🤞. And I still get it wrong.

I didn’t mean that those posting to the marketplace should know it by heart, but that there should be a pinned post/documentation where it was all spelled out briefly (perhaps with a more in-depth explanation beneath), that people could use as a reference.

I’m pretty sure that would be needed regardless what the syntax was, most of us aren’t “used to” specifying version ranges.

---

<div class="post-metadata">

**Author:** ![Nadahar](https://community.openhab.org/user_avatar/community.openhab.org/nadahar/32/194556_2.png) [@Nadahar](https://community.openhab.org/u/Nadahar)\
**Post date:** [July 11, 2026, 4:05pm UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/23 "2026-07-11T16:05:00Z")

</div>

> [@rlkoshak](#):
>
> The first post ended up as post 20. 😿

And I managed to post in the other thread in the meanwhile 🤕

> [@rlkoshak](#):
>
> But I also tried [5.2.0.0,5.9.9.9] at one point and it still showed the version numbering. But I didn’t go back to figure out why. Maybe the semicolon was needed.

It is the semicolon, I think I made comma supported as an alternative in my refactoring work, but since that only exists in my branch, it doesn’t matter. Only semicolon is supported.

---

<div class="post-metadata">

**Author:** ![rlkoshak](https://community.openhab.org/user_avatar/community.openhab.org/rlkoshak/32/75251_2.png) [@rlkoshak](https://community.openhab.org/u/rlkoshak)\
**Post date:** [July 11, 2026, 4:06pm UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/24 "2026-07-11T16:06:45Z")

</div>

> [@Nadahar](#):
>
> And I managed to post in the other thread in the meanwhile 🤕

Already moved it.

> [@Nadahar](#):
>
> but that there should be a pinned post/documentation where it was all spelled out briefly (perhaps with a more in-depth explanation beneath)

There is a thread somewhere where this was once explained to me at some point. I’ve long since lost it and will have to search it up again. It’s not the full Maven syntax as I understand it. More inspired by it.

---

<div class="post-metadata">

**Author:** ![Nadahar](https://community.openhab.org/user_avatar/community.openhab.org/nadahar/32/194556_2.png) [@Nadahar](https://community.openhab.org/u/Nadahar)\
**Post date:** [July 11, 2026, 4:11pm UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/25 "2026-07-11T16:11:22Z")

</div>

> [@rlkoshak](#):
>
> There is a thread somewhere where this was once explained to me at some point. I’ve long since lost it and will have to search it up again. It’s not the full Maven syntax as I understand it. More inspired by it.

Yeah, it doesn’t support the full Maven syntax because the implementation is somewhat “lazy”. But, I have already refactored all this a long time ago, so I’m currently trying to extract just that part from my old `marketplace` branch. But, whatever we do, there’s no getting around the fact that we’re bound by what older OH versions understand, so there isn’t a lot of freedom to change things here.

But, I’ve at least changed what I considered “bugs”, and if I manage to extract it and get it merged, perhaps it can become slightly better in the future. In “my version”, you can specify as few numbers as you want, so you could do e.g `[5.2;6)`.

I could write the documentation/explanation for the versioning range part, since I know the code relatively well. But, I was thinking that there should be some document explaining “the whole process”, where to place inline resources, links, that you must use “raw” GitHub links etc.

---

<div class="post-metadata">

**Author:** ![rlkoshak](https://community.openhab.org/user_avatar/community.openhab.org/rlkoshak/32/75251_2.png) [@rlkoshak](https://community.openhab.org/u/rlkoshak)\
**Post date:** [July 11, 2026, 4:15pm UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/26 "2026-07-11T16:15:28Z")

</div>

> [@Nadahar](#):
>
> But, I was thinking that there should be some document explaining “the whole process”, where to place inline resources, links, that you must use “raw” GitHub links etc.

The marketpalce probably deserves a separate page in the docs.

---

<div class="post-metadata">

**Author:** ![rlkoshak](https://community.openhab.org/user_avatar/community.openhab.org/rlkoshak/32/75251_2.png) [@rlkoshak](https://community.openhab.org/u/rlkoshak)\
**Post date:** [July 11, 2026, 4:16pm UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/27 "2026-07-11T16:16:31Z")

</div>

Using [5.2.0.0;) doesnt’ appear to work. But using [5.2.0.0;5.9.9.9] does appear to work.

---

<div class="post-metadata">

**Author:** ![Nadahar](https://community.openhab.org/user_avatar/community.openhab.org/nadahar/32/194556_2.png) [@Nadahar](https://community.openhab.org/u/Nadahar)\
**Post date:** [July 11, 2026, 4:17pm UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/28 "2026-07-11T16:17:02Z")

</div>

Yes, I don’t think my suggestion for open-ended ranges was ever accepted either.

> [@rlkoshak](#):
>
> But using [5.2.0.0;5.9.9.9] does appear to work.

That form is actually better anyway, because it avoids the whole mess with pre-release versions. If you use `[5.2.0.0:6.0.0.0)`, it will be available in 6.0.0 milestones and release candidates, but I’m not sure if it will in snapshots 😕

---

<div class="post-metadata">

**Author:** ![ErikDB](https://community.openhab.org/letter_avatar_proxy/v4/letter/e/ac8455/32.png) [@ErikDB](https://community.openhab.org/u/ErikDB)\
**Post date:** [July 11, 2026, 7:17pm UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/29 "2026-07-11T19:17:43Z")

</div>

> [@rlkoshak](#):
>
> However, you can click the code tab of your rule and change the ruleTemplate to match the new ID, ohrt-presenceSim in this case. Then you can regenerate.

That worked! (The property was just `template`, apparently…)

---

<div class="post-metadata">

**Author:** ![Nadahar](https://community.openhab.org/user_avatar/community.openhab.org/nadahar/32/194556_2.png) [@Nadahar](https://community.openhab.org/u/Nadahar)\
**Post date:** [July 11, 2026, 7:21pm UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/30 "2026-07-11T19:21:14Z")

</div>

> [@ErikDB](#):
>
> That worked! (The property was just `template`, apparently…)

The property names are all documented here: [YAML Rules | openHAB](https://www.openhab.org/docs/configuration/yaml/rules.html#yaml-definition-syntax)

---

<div class="post-metadata">

**Author:** ![jimtng](https://community.openhab.org/user_avatar/community.openhab.org/jimtng/32/98543_2.png) [@jimtng](https://community.openhab.org/u/jimtng)\
**Post date:** [July 12, 2026, 12:23am UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/31 "2026-07-12T00:23:56Z")

</div>

Is the marketplace source just hard coded to the forum id inside openhab?

If we were to come up with a better scheme (versioning number, syntax etc), we could create a “New Marketplace” e.g. for openhab 5.3+ and archive the old one. Openhab 5.3+ can load from both the new marketplace (and the old marketplace if that’s beneficial for the transition), whereas the older openhab versions don’t even know about the new marketplace. IMO there’s no need to stick to a bad system forever.

---

<div class="post-metadata">

**Author:** ![Nadahar](https://community.openhab.org/user_avatar/community.openhab.org/nadahar/32/194556_2.png) [@Nadahar](https://community.openhab.org/u/Nadahar)\
**Post date:** [July 12, 2026, 12:34am UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/32 "2026-07-12T00:34:40Z")

</div>

> [@jimtng](#):
>
> Is the marketplace source just hard coded to the forum id inside openhab?

Yes, but I don’t see any reason to do anything like that. I’ve long wanted to move the “database” away from the forum, so that there’s a “proxy” running on a server that queries the forum regularly and then serves the OH clients. But, I’ve had no luck getting anybody to “help me” figure out how that would have to look. I don’t know the infrastructure, and what would and wouldn’t work.

But, to make a “break” is unnecessary - new clients can point to the new address, while old clients keep fetching directly from the forum. As older clients get fewer, the load on the forum subsides. It would be very bad to break the marketplace for older versions. I run 4.2.3 myself, I wouldn’t bother to host add-ons on the marketplace if I couldn’t use them. The whole point of all this, is to not break everything for those that doesn’t run the latest version.

I don’t see any point in making this “break” because you think that the version range is “bad” though. I think it’s fine as it is, only a bit bugged. But, there are many other shortcomings, so I have “made” another system that allows specifying more information.

If you look at this add-on, it’s the one I’ve used when developing support for versioning:

> [@Test Bundle (DO NOT INSTALL) \[2.0.0.M1;2.0.0.M3)](https://community.openhab.org/t/test-bundle-do-not-install-2-0-0-2-0-1/161624):
>
> Warning! This topic is for development testing only. Do not install, it will probably cause issues with your system. version: 1 blocks: astro\_newyaml\_marketplace: tags: - Test props: parameters: [] parameterGroups: [] component: BlockLibrary config: name: Astro Marketplace slots: blocks: - component: BlockType config: type: compare\_event\_time message0: the %1 of today's %2 according to %3 %4 …

It allows specifying multiple versions of the same add-on, specify that an add-on depends on other add-ons, specify informration that you can’t today (documentation, issue tracker etc) - all this _without_ breaking compatibility with the existing format.

---

<div class="post-metadata">

**Author:** ![Nadahar](https://community.openhab.org/user_avatar/community.openhab.org/nadahar/32/194556_2.png) [@Nadahar](https://community.openhab.org/u/Nadahar)\
**Post date:** [July 12, 2026, 12:40am UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/33 "2026-07-12T00:40:48Z")

</div>

This already works with the branch I’ve developed it against, as can be seen here:

[![](https://img.youtube.com/vi/FU6HROEUnS4/maxresdefault.jpg "openHAB add-on dependency 2") ](https://www.youtube.com/watch?v=FU6HROEUnS4)

[![](https://img.youtube.com/vi/8UuAN11D9So/maxresdefault.jpg "openHAB add-on version selection") ](https://www.youtube.com/watch?v=8UuAN11D9So)

---

<div class="post-metadata">

**Author:** ![rlkoshak](https://community.openhab.org/user_avatar/community.openhab.org/rlkoshak/32/75251_2.png) [@rlkoshak](https://community.openhab.org/u/rlkoshak)\
**Post date:** [July 12, 2026, 3:40pm UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/34 "2026-07-12T15:40:58Z")

</div>

> [@jimtng](#):
>
> we could create a “New Marketplace” e.g. for openhab 5.3+ and archive the old one. Openhab 5.3+ can load from both the new marketplace

> [@Nadahar](#):
>
> But, I’ve had no luck getting anybody to “help me” figure out how that would have to look. I don’t know the infrastructure, and what would and wouldn’t work.

There’s already support for third party marketplaces. I’m not sure how it’s implemented and whether it faces the same problems or even if it’s suitable. But it’s worth looking at.

---

<div class="post-metadata">

**Author:** ![jimtng](https://community.openhab.org/user_avatar/community.openhab.org/jimtng/32/98543_2.png) [@jimtng](https://community.openhab.org/u/jimtng)\
**Post date:** [July 12, 2026, 4:00pm UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/35 "2026-07-12T16:00:12Z")

</div>

You’re probably referring to the JSON source.

---

<div class="post-metadata">

**Author:** ![Nadahar](https://community.openhab.org/user_avatar/community.openhab.org/nadahar/32/194556_2.png) [@Nadahar](https://community.openhab.org/u/Nadahar)\
**Post date:** [July 12, 2026, 4:06pm UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/36 "2026-07-12T16:06:01Z")

</div>

> [@rlkoshak](#):
>
> There’s already support for third party marketplaces. I’m not sure how it’s implemented and whether it faces the same problems or even if it’s suitable. But it’s worth looking at.

It’s largely the same code, the forum parsing stuff is separate for the community marketplace obviously, but the rest of the code is mostly shared. But, there are some inconsistencies there too, the JSON marketplace has another type of designation of “stable”/“unstable” than what the community marketplace has 😕

---

<div class="post-metadata">

**Author:** ![Nadahar](https://community.openhab.org/user_avatar/community.openhab.org/nadahar/32/194556_2.png) [@Nadahar](https://community.openhab.org/u/Nadahar)\
**Post date:** [July 16, 2026, 1:11am UTC](https://community.openhab.org/t/marketplace-versioning-issues/169748/37 "2026-07-16T01:11:00Z")

</div>

I’ve extracted the version changes I made back then, and created a PR. If this is merged, it will fix many of the issues discussed here, at least for future OH versions:

> <https://github.com/openhab/openhab-core/pull/5720>
>
> Back in early 2025, I did a lot of work to try to made add-ons versioned, so tha…t e.g. the marketplace would have a concept of the version of an add-on, allow upgrade, downgrade, update notification etc. This work stalled for a couple of reasons that I wasn't able to solve, and this is still the case, but I've kept the branch in case I see a solution to these issues some time in the future.
> 
> From time to time, the handling of add-on versions during upgrades, the fact that marketplace add-ons just "disappear" during upgrade, failures in the version range system and similar comes up, as it did again lately: https://community.openhab.org/t/marketplace-versioning-issues/169748
> 
> Knowing that I've solved many of those little things that are frustrations and obstacles for people to this day, a long time ago, I finally decided to try to extract just the version handling from the branch with the earlier work, and this PR is the result.
> 
> I've tried to remove everything that isn't directly related to the add-on version, but I've kept a few pure bugfixes just because, why not fix them when I know that they are there, and the fix has already been found..?
> 
> The changes in the PR centers about two new classes, \`Version\` and \`VersionRange\`. They make \`BundleVersion\` unnecessary, so it has been removed. \`Version\` and \`VersionRange\` closely follow the logic of OSGi's classes with the same names, but they are adjusted to fit with "OH's rules". In fact, I originally made them as extensions to the OSGi versions, but that caused so many problems during serialization/deserialization that I had to abandon that. They are still "compatible" with the OSGi classes and have methods for easy conversion both ways, without using string parsing.
> 
> \`Version\` is used in the \`Addon\` class itself, instead of basing everything on strings and string parsing. This makes it easy to compare, sort and "process" versions consistently throughout the system, and since it is easily convertible to/from OSGi's \`Version\`, it integrates well with version information obtained for bundles.
> 
> \`VersonRange\` is only used for the marketplace, but is also available system-wide, should the need arise elsewhere.
> 
> In addition, I've addressed a number of parsing issues that happen for some marketplace add-ons under some circumstances, every change I've made there is based on things I've "observed in the wild". The annotation and bugfix for \`MarketplaceAddonHandler.supports()\` is one of those, but I considered it important enough to include. When the NPE hits, the marketplace parsing is aborted and the user will see no marketplace add-ons at all.
> 
> Last, I included an unrelated fix, that I've long thought should have been brought in: Special treatment for GitHub links. Since GitHub is widely used for hosting marketplace resources, there have been numerous add-ons that have "used the wrong link" (I have notified those I've come across, so I think most of them have been rectified, but this will continue to happen in the future). GitHub have two ways to link a file, it's the "normal" link, which take you to a web page that shows the file, and then there's the "raw" link, which links only to the file itself. For the marketplace to work, people must use the "raw" link, but it's easy to miss. The fix here inspects links that are GitHub only, and checks whether they are "raw" or not. If they aren't, it adds a query parameter that GitHub provides that makes sure that when the link is used, you're forwarded to the "raw" file instead of getting the webpage view of the file.

[Previous page](https://community.openhab.org/t/marketplace-versioning-issues/169748.md?page=1)
