learningequality / kolibri

Kolibri Learning Platform: the offline app for universal education
https://learningequality.org/kolibri/
MIT License
801 stars 657 forks source link

Versioning plugins and dependencies between plugins and kolibri #527

Open rtibbles opened 8 years ago

rtibbles commented 8 years ago

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:

benjaoming commented 8 years ago

Updated the description!

indirectlylit commented 7 years ago

This is a high-level task that needs some planning and design before it can be addressed with a PR. Migrating to: https://trello.com/c/iRzHX80d/690-core-api-versioning

indirectlylit commented 7 years ago

re-opening - back from Trello