Skip to content

Versioning plugins and dependencies between plugins and kolibri #527

@rtibbles

Description

@rtibbles

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-inline vs display-block)
  • core CSS variables and functions
  • python hooks
  • probably others - anything that could break a plugin if we update something in Core

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions