-
Notifications
You must be signed in to change notification settings - Fork 863
Description
Help ensure that standalone plugins are built/used with the correct version of Kolibri.
Static JS assets are now built into separate bundles such that plugins can use different versions of NPM dependencies (right @rtibbles ?)
So, the remaining piece of the puzzle is to be able to specify the versions of the Kolibri core which a plugin is dependent on. This should be enforced at build time but possibly also feed into the setup.py metadata such that the plugin isn't installed with the wrong version of Kolibri.
Finally, at Kolibri load-time, the plugin should fail to load if the wrong version of Kolibri is calling it.
We can find inspiration possibly by how Firefox and Thunderbird extensions depend on their host systems.
We should also ensure that all aspects of the core API are properly documented for each version, so it's clear when the API version needs to be updated. In particular, we currently use apiSpec to enumerate globally shared python modules. However this might not fully capture the API, including:
- core component props, events, and even potentially CSS- level behaviors (e.g.
display-inlinevsdisplay-block) - core CSS variables and functions
- python hooks
- probably others - anything that could break a plugin if we update something in Core