Over the last few weeks I've been re-writing my add-ons common module / library code.
All my add-ons were using this module as a dependency.
This meant that if I updated the common module, I'd need to update all add-ons and easily risk breaking some of them in the process.
Yesterday I had a thought that I would instead ship the common code inside the add-on itself.
I do this using a git sub-module to track which commit of the common code works with this add-on.
This allows for a few benefits
All my add-ons were using this module as a dependency.
This meant that if I updated the common module, I'd need to update all add-ons and easily risk breaking some of them in the process.
Yesterday I had a thought that I would instead ship the common code inside the add-on itself.
I do this using a git sub-module to track which commit of the common code works with this add-on.
This allows for a few benefits
- I can release new add-ons (eg. Udemy) using new version of common code without having to update old addons
- Add-ons now don't have any dependencies (except libraries provided by kodi).
This allows the add-ons to be installed without my repo needing to be installed. - I don't break add-ons when updating the common code
The major update switching all the add-ons to include the common code was pushed last night.
Ideally, KODI would have a dependency system that would allow me to specify an exact version of the common module to use for that add-on, but it only allows to specify a minimum version. I assume this is due to it only allowing 1 version of an add-on to be installed at a time.
So, I am now free to start releasing new add-ons without worrying about breaking the older ones.
Next will be a basic New Zealand Sky Go add-on (up now) for sports only and then ShowMax South Africa (up now).
Still on the lookout for logins for other services.
If you think you can help, see my post HERE.
Next will be a basic New Zealand Sky Go add-on (up now) for sports only and then ShowMax South Africa (up now).
Still on the lookout for logins for other services.
If you think you can help, see my post HERE.