docs: document third-party origin, build and AGPL/GPLv3 licensing (DIR-05) - #109
Merged
erseco merged 7 commits intoJul 25, 2026
Merged
Conversation
The plugin ships two pieces of third-party code: the SCORM runtime wrappers in assets/scorm/ and, in release ZIPs only, the compiled eXeLearning editor in dist/static/. Both were declared in thirdpartylibs.xml but neither carried the readme_moodle.txt that the Moodle third-party library guidelines ask for, and nothing explained why an AGPL-3.0 editor is distributed inside a GPLv3 plugin. Add readme_moodle.txt to both folders (origin, upstream path, modifications applied, and the exact commands to rebuild or refresh them) and a "Third-party code" section to the README covering the licence combination: section 13 of the GPLv3 and of the AGPLv3 permit it, and each part keeps its own licence. dist/readme_moodle.txt sits in dist/ rather than dist/static/ because make build-editor empties dist/static/ on every rebuild.
The upstream runtime rewrite (exelearning/exelearning pull request 2209, mirrored by the coordinated plugin update) changes what "third party" means here: SCORM_API_wrapper.js becomes the unmodified upstream pipwerks wrapper (MIT, v1.1.20180906, byte-identical, hash recorded) — the plugin's only third-party library — and SCOFunctions.js becomes first-party eXeLearning code (AGPL-3.0-or-later, written from the SCORM 1.2 specification), no longer listed in thirdpartylibs.xml. Update assets/scorm/readme_moodle.txt to record that provenance and the new update path, the README third-party section to describe the one-MIT-library reality and extend the AGPL/GPLv3 rationale to all bundled eXeLearning code, and dist/readme_moodle.txt to drop the sentence about the removed moodledata installer (the bundle is the only source since the installer removal). This lands after the SCORM runtime replacement PR so the notes describe the final state, not the transitional one.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## refactor/scorm12-runtime-clean-provenance #109 +/- ##
============================================================================
Coverage 92.31% 92.31%
Complexity 824 824
============================================================================
Files 51 51
Lines 3734 3734
============================================================================
Hits 3447 3447
Misses 287 287
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
erseco
marked this pull request as draft
July 24, 2026 13:45
erseco
changed the base branch from
main
to
refactor/scorm12-runtime-clean-provenance
July 25, 2026 13:35
erseco
marked this pull request as ready for review
July 25, 2026 13:35
erseco
merged commit Jul 25, 2026
0944a59
into
refactor/scorm12-runtime-clean-provenance
25 checks passed
Contributor
Author
|
Superseded by #105. The documentation and licensing changes from this pull request were squash-merged into the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The external validation of release 4.0.2 (finding DIR-05) recommended a written clarification for the AGPL-3.0 editor shipping inside a GPLv3 plugin, and the Moodle third-party library guidelines ask for a
readme_moodle.txtnext to imported code. Neither existed.Changes
assets/scorm/readme_moodle.txt(new) — records the post-PR-105 provenance:SCORM_API_wrapper.jsis the unmodified upstream pipwerks wrapper (MIT, v1.1.20180906, byte-identical topipwerks/scorm-api-wrapper@82e455b), the plugin's only third-party library;SCOFunctions.jsis first-party eXeLearning code (AGPL-3.0-or-later, written from the SCORM 1.2 RTE specification) and is therefore not listed inthirdpartylibs.xml. Includes the exact update path for both files.dist/readme_moodle.txt(new) — origin and build instructions for the bundled editor, Moodle-convention style: what it is, why it is bundled, the licence rationale, that it is copied verbatim with no Moodle patches, and the exact commands to rebuild it (make build-editor+.editor-version+make package). Lives indist/rather thandist/static/because the build emptiesdist/static/on every rebuild.Verification
readme_moodle.txtfiles travel inside the release ZIP next to the code they document (checked on a locally built package).Moodle Playground Preview
The changes in this pull request can be previewed and tested using a Moodle Playground instance.
ℹ️ The eXeLearning editor is fetched from the shared release and unpacked into the plugin when the playground boots, so the first load may take a few extra seconds. ELPX upload, viewer and preview work normally.