Marketplace Rules for 3.4.0 vs 4.0.0 - New Bindings

The rules didnt explicitly call this out, so asking before doing. I recently submitted a binding for inclusion in 4.0.0. Ive also posted a version in the marketplace for beta use. That said, as 4.0.0 is far off still, I would like to release both a 3.4.0 and 4.0.0 version for some time to cover the community. Should this be two separate posts or one with a file for each?

Yes, separate posts. As I understand it there isn’t a way to have both in the same post, at least not in a way that can be installed through MainUI. Each post can only have one resource.

I’m not sure though if this would violate the rules of the marketplace. It seems perfectly reasonable to me that this would be allowed. You are not posting a competing version of a binding already published, just different versions of the same binding so I think it’d be OK.

You can also add version ranges to the add-on topic so they only show up in openHAB 3 or 4, e.g.:

  • ACME Binding [3.3.0;4.0.0)
  • ACME Binding [4.0.0;4.1.0)

See:

3 Likes

Does that work for rule templates? It looks like not but rule templates could be version dependent too (e.g. any rule template that uses privateCache or sharedCache will only work on 3.4M4+ (I think)).

I imagine widgets and blockly libraries could be tied to specific versions too.

I think it works for any add-on type in the Marketplace after briefly looking at the code. :slight_smile:

1 Like

@rlkoshak I see you updated a few topic to include the range like [3.2,3.4)
But it looks like it really needs to be in the format I used in the example, i.e. using the 3 version digits and a ; instead of a ,… so try [3.2.0;3.4.0)

Awesome. I’ll probably drop 3 total. 3.4.0 stable to match whats committed to 4.0.0, and then a beta for 3 and 4 for new features. Thanks!

1 Like

Doh!

I should have paid more attention.

Thanks for the heads up. I’ll go fix them.

1 Like

I noticed the ranges weren’t working as expected, so I’ve created a fix for this with:

2 Likes

For more add-on version range talk see also: Energi Data Service Binding [4.0.0.0;4.1.0.0) - #4 by laursen

Further insights:

  • A range like [3.4.0;4.0.0) also includes includes 4.0.0-SNAPSHOT
  • The range logic also consider micro versions, so to exclude snapshots of the next version you can use a range like [3.4.0.0;4.0.0.0) or [4.0.0.0;4.1.0.0)

For anyone looking to make builds compatible between versions, please see this commit to the AndroidTV binding. To note, and please read carefully, this makes assumptions you know what you’re doing in respect to java versions and if you break your binding, that’s on you.