Feature request -- requirements before update/install/run

A “requirements” key in addons and appcasts.

Currently if I post an update it will be picked up but all version of RapidWeaver. However there are now vast differences in RapidWeaver API meaning that often my updates break things for users – which is pretty bad for everyone.

It would be great if updates could be applied only to specific versions of RapidWeaver.

In Stacks we handle this in two ways:

  1. During the check - when Stacks downloads the appcast from the 3rd party developer’s server the version of Stacks and RapidWeaver are provided to as parameters in the GET request. A smart appcast server can then serve an appropriate appcast for the user’s environment.

  2. On loading – if a user installs things manually we still don’t want to load an incompatible addon – so Stacks have min API version requirements – if the API version isn’t met the stack doesn’t load at all (it will report an error in the dev-console to help with support).

I’m sure the needs of the main app are different – but it would be great if similar requirements handling could be done for plugins/themes/snippets/etc.

1 Like

Ah, that’s a good call. I’ll get @simon to look into that now.

Cheers
Dan

1 Like

Hi @isaiah,

For #1, the only values I can think of that would be of use to you are the RW version, RW build number, and the version of the currently installed plugin. Is there anything else you’d like? We can certainly pass these in URL parameters, like so:
https://yourserver.com/plugin/appcast.xml?rw_version=7.3&rw_build=18546b&addon_version=1287

For versions of RapidWeaver older than 7.3, where this feature would ship, you would have to parse the User Agent header to get the build version:

RapidWeaver%207/18546b CFNetwork/807.2.14 Darwin/16.4.0 (x86_64)

For #2, we could enforce a RWMinimumVersion key for all new addons - would that work for you?

Cheers,

Simon

1 Like

YES! Those things would be perfect. How about the macOS version too?

Also: I didn’t realize the version and build info was in the user-agent. That’s kind of huge. That detail alone will definitely help a lot.

enforcing the RWMinimumVersion would be great

Alright then! I’ve added another addon key so that it matches the rw keys as well:

http://yourserver.com/plugin/appcast.xml?rw_version=7.3&rw_build=18547b&addon_version=3.2.6&addon_build=3904&macos_version=10.12.3

1 Like

And from RapidWeaver 7.3 onwards, we’ll look for a RWMinimumVersion key in your Info.plist for all addon types. If it’s not there, we’ll assume your addon works on every version of RapidWeaver 6 or 7 (this is the existing behaviour).

For example, if you want your addon to only work on RapidWeaver 7.3 onwards you’ll add this to your Info.plist:

<key>RWMinimumVersion</key>
<string>7.3</string>
1 Like