I try to upload a build for nc <= 11 and one for nc 12 into the app store, but it seems that only the latest upload is used/displayed as you can see here. The one build has <nextcloud min-version="8.1" max-version="11"/> in his dependency list and the other <nextcloud min-version="12" max-version="12"/> . Any ideas or suggestions? Am I doing something wrong?
The app version must be unique, that’s why there’s only one app in the end because the last app overrides it. You have to use a different version for different code (which makes sense).
Why don’t you use a stable version for your old code like nextcloud does?
Why don’t you use a stable version for your old code like nextcloud does?
Because there is no feature difference between both versions and I would like to stick to the chat core lib (the chat app is just an wrapper for www.jsxc.org) version, because otherwise I think users could get confused.
According to http://semver.org adaptions to use an new api would be only a feature bump and to use therefore a stable version, which would require a major bump, is a bit over the top in my pov.
Am I the only developer with such issues? Do you have another idea to solve my issue in a user friendly way?
According to http://semver.org adaptions to use an new api would be only a feature bump and to use therefore a stable version, which would require a major bump, is a bit over the top in my pov.
Yep, but your dependency requirement on a newer Nextcloud version is a break in the backwards compat so increasing the major version is required. Semver is about breaking changes and has nothing to do with versions having the same features.
Do you have another idea to solve my issue in a user friendly way?
Also think about upgrading Nextcloud: the current version will not be compatible anymore and there won’t be newer versions on the app store. This would require Nextcloud to do same version equality checks as well (which is not supported atm). Also think about the user being prompted to upgrade from 3.0.2 to … 3.0.2. This will be a big wtf
Just fyi for API versioning: I version that one differently via a parameter in the URL.
Also bumping the major version does not mean that you broke backwards compatibility on all layers. For libs you probably only increase the major version for API breaks but thats because a lib is basically only an API