Springboard (https://www.mediawiki.org/wiki/Extension:Springboard)
The idea is to develop an extension for installing extensions and skins in MediaWiki from the web interface. We aim to add compatibility checks based on MediaWiki releases, and automating tasks like maintenance script (update.php) execution and enabling extensions or skins. This tool would significantly reduce the learning curve for new contributors and users. Additionally, the extension would identify the prerequisite extensions for a specific extension/skin thereby preventing common errors. We also have a plan for supporting extensions and skin upgrades, but we might pick it up post the hackathon due to the time consumption of other priority features. Originally conceived as part of the 2010 Google Summer of Code program (https://www.mediawiki.org/wiki/Google_Summer_of_Code/Past_projects#Extension_management_platform), the project faced technical challenges that hindered its completion. The major reason for the failure is due to the approach of making it "too smart" by stepping into web scraping and other experimental routes for installation. We plan to use a like YAML file for defining the versions and other meta data required. It's easy to update and contribute to, and also, doesn't get too complicated on the go. Reviving and completing this initiative would greatly help users to customize their MediaWiki setups effortlessly, fostering a more inclusive and user-friendly ecosystem.
Planned features
- Install extensions / skins using UI
- Procurement through Git
- Enable / disable extensions and skins
- Extension maintenance script (update.php) execution to create necessary tables
Future enhancements
- Handle extension and skin upgrades
- Manage extensions / skins installed through the general way
Strategy
An extension consuming a YAML based storage for storing and retrieving extensions' / skins' information like repository links, versions and branches (MW specific).
A consensus-based listing of the ideal revision to use for the extensions and skins based on the MediaWiki version, will be used for procuring the extensions/skins from their repositories.
YAML Example
extensions:
- Cargo:
branch: master
commit: a2865938165c1389d852df762f8c85073859e5dd
- WatchAnalytics:
branch: master
commit: 72b70a667a26bbde0a3cf93fc79747aae08fca32
update: true # (if maintenance update script needs to be run)
- ApprovedRevs:
branch: master
commit: 53b67bf7e1e8ac3d20c2fd41ad2ab1c708c045a6
requires:
- ABC
skins:
- chameleon:
commit: f34a56528ada14ac07e1b03beda41f775ef27606
repository: https://github.com/ProfessionalWiki/chameleon
- Refreshed:
commit: 86f33620f25335eb62289aa18d342ff3b980d8b8Screenshots
Extensions tab -
Skins tab -

