ResourceLoader/Version 2 Design Specification/Testing

ResourceLoader 2 (RL2) is a project run by Roan Kattouw and Timo Tijhof that involves a rewrite of the Gadgets extension to add support for sharing Gadgets across wikis.

RL2 in a nutshell

 * RL2 enables sharing Gadgets across wikis, localizing them, and loading them through ResourceLoader
 * Support for non-ResourceLoader-compatible Gadgets will be dropped
 * A repository wiki is a wiki that contains Gadgets that are used by other wikis, much like Commons contains files that are used on other wikis
 * A client wiki can pull Gadgets from a repository wiki through either the database (DB; only available within wiki farms) or the API (always available).
 * RL2 also allows Gadgets to use MediaWiki's i18n system

How RL2 would be set up at WMF

 * One central wiki (mediawiki.org?) would be set up as a repository
 * Most Gadgets would live on the central wiki (just like most files are on Commons)
 * All other wikis would be configured to pull from this central wiki through the DB
 * 3rd party wikis can be configured to pull from this central wiki through the API (just like InstantCommons for files)

Testing tasks
After testing something, please share your findings, even if they're positive (e.g. I had no problems when I tried XYZ), on the talk page.
 * Import popular Gadgets to the repository wiki (rl2-repo1)
 * Test whether the imported Gadgets work with RL and RL2
 * Fix broken Gadgets
 * Test whether loading a Gadget from another wiki works
 * Test the Gadget manager
 * Test the separation of rights

Prototype wikis
The following prototype wikis are currently set up for testing:
 * rl2-repo1
 * Main repository wiki testing the typical WMF use case (mostly), used to test existing Gadgets for RL and RL2 compatibility
 * Allows sharing: yes
 * Pulls from: rl2-repo2 using API (yes, this is weird, but we figured testing what would happen if two repositories pull from each other in a loop would be a good idea)
 * rl2-repo2
 * Secondary repository wiki, used to test multi-repository set-ups
 * Allows sharing: yes
 * Pulls from: rl2-repo1 using DB (yes, this is weird, see comment at rl2-repo1)
 * rl2-client1
 * Client wiki testing the typical WMF use case (mostly)
 * Allows sharing: no
 * Pulls from: rl2-repo1 using DB, rl2-repo2 using API
 * rl2-client2
 * Client wiki testing the typical 3rd party wiki pulling from a WMF wiki
 * Allows sharing: no
 * Pulls from: rl2-repo1 using API, rl2-client1 using API (this won't actually work; testing that trying to pull from a non-repository wiki will fail gracefully)