Background and overview
Epic umbrella task for transitioning Grunt JavaScript task runner tasks into npm scripts in Wikimedia deployed projects.
With the decline of Grunt for many years now, it won't be feasible to use it infinitely without risking modern functionality and abilities and security (read below). The last release dates back to Jan 2023.
In a recent NPM audit in Oct 2025, a security vulnerability was identified, where Grunt, depends on an unmaintained version of Glob.
This task tracks the overall progress while T246326: Process template: How to transition Gruntfile.js tasks to NPM scripts serves with examples.
Besides the pure technical transition challenges, we also need to ensure to update documentation and remove mentions of Grunt.
https://www.mediawiki.org/wiki/Continuous_integration/Entry_points
Goal
Transition Grunt tasks using projects away with npm as current technology choice
Acceptance criteria for done
- Transition each of the projects below
- Remove mentioning of/replace Grunt in documentation
- Update LibUp configuration
Projects (Wikimedia deployed)
MediaWiki core
- MediaWiki Core
Extensions
From prior art tasks
Newly captured in this task
Skins
- Skin:Vector T242781: Transition Gruntfile.js tasks to NPM scripts (Vector)
- Skin:Example
- Skin:Timeless
- Skin:MonoBook
- Skin:Modern
Other projects
Prior art
T246321: [EPIC] Transition Gruntfile.js tasks to NPM scripts in some projects