Hello
I am trying to get a grip on the options for extending/enhancing an Open Ed X based platform, and the licencing implications. I found this page:
which lists 5 (XBlock, IDA, Django App (standalone), Django app (EdX repo), direct code modifications.
However I’m not clear if this guidance is really relevant / up-to-date as I think the docs under https://openedx.atlassian.net/wiki/spaces/DOC/overview are largely superseded by those at: https://docs.edx.org/
Looking at the developer guidance: https://edx.readthedocs.io/projects/edx-developer-docs/en/latest/
I see a ’ [Open edX Extensions and APIs]’ menu option which points to : https://open.edx.org/extending-edx but redirects to quite general https://open.edx.org/community/customization/
Following the doc menus here : https://open.edx.org/community/documentation/
I see various guides mentioned under Developers section but none are linked to actual docs (which assumed should be).
BTW I’ve tried to report these document issues where there is an option to do so…
So I feel like I’m going round in circles a bit. Can anyone advice if:
-
This overview is still valid: https://openedx.atlassian.net/wiki/spaces/AC/pages/30965856/How+to+add+a+new+feature+to+LMS+or+Studio
or is there a more up to date guidance? -
Assuming the 5 options listed still are relevant, what are the various licensing implications (if you understand them) on the code you create/modify.
My view would be:
A: XBlock - Apache licence separation, so no requirement to publish
B: IDA via Open Ed X APIs. Debatable - see below
C: Django App (standalone) - probably AGPL or even ‘GPL’ depending on how connected
D: Django app (EdX repo) - AGPL (really GPL)
E: Direct code modifications - AGPL (really GPL)
Use case B - IDAs via the Open Ed X is the use case I’m most interested in. This seems to be a grey area or certainly there are debates about if building an extension on a published API is creating a ‘derivative’ work or not. It seems would depend on:
- If the API was part of the core licences package, and under what licence
- If you’ve modified / extended the API itself
- The intent of the group/team using the licence.
See here for a endless discussions:
https://www.google.com/search?safe=strict&ei=eItGX8fEAcOIrwTinZLYCA&q=REST+API+Derivative+Work+AGPL&oq=REST+API+Derivative+Work+AGPL
Like everyone I’m not a lawyer so I’m not looking for legal guidance but more a view on what is the recommended approach to building feature extensions, the docs describing this and licences, and any indication of the ‘intent’ of the wider team/community.
Thanks
Richard