It is time we develop a vision on what community based extensions to MediaWiki should look like. Without even having a vision of where we are going, it will be hard to make the right technology choices.
We should index what the current problems are, what the purpose is of us offering the ability to use scripts, what responsibilities are for each of the actors in the system and eventually interesting ideas to improve the overall system, and methodologies to reach that new state, without blowing up the community.
Current problems:
- security (who has access and what can you do) T171563: Only allow MediaWiki, Gadget, and User namespace pages to be treated as JS or CSS (no project namespace, etc.)
- abandonware (lot of scripts are in use by thousands of people, but not actively maintained/owned)
- fragility (the scripts break easily and often)
- hard to detect broken scripts
- hard to know how extensively used a script is
- little reuse across the wiki's T22153: Implement global gadgets (WMF-wide)
- revision control (wikipage vs. git)
- quality control
- userscripts execute in global scope T65728: ResourceLoader: User scripts should not execute in global scope
- Translations and configuration options are not consistent.
A few problems that I (TheDJ) see that we should consider
- It's hard for a script to change owner.
- It's hard to deprecate an existing user script
- it's too hard to maintain your user scripts. You shouldn't have to know about RL or JS itself even, in order to enable a userscript (this is what made importScript work so well for years).
- It should be easier to have a userscript promote to being a gadget, and easier to 'drop' it from the gadgets as well.
- We need better frameworks. A language to modify your UI. A consistent API and place for your page extensions, without interfering with the rest of your UI. addportletlink has reached it's limits
Edit as you please.