We recently had a performance regression relating to Phonos and OOUI being added to all page loads (T345414). Despite having a performance budget inside Vector and Minerva, the modules included in the performance budget have to be manually captured inside bundlesize config
Assuming hooks are executed, we should instead generate the list of modules that are loaded on page load dynamically and instead use a single number as the budget.
We hope this will reduce the amount of time the web team react to performance Grafana alerts (and identify the source of regression) and instead allow us to proactively detect them and discuss implications with the appropriate teams.
Developer notes
You should be able to identify all modules on a page by calling OutputPage::getModuleStyles (CSS) or OutputPage::getModules (JS)
QA steps
The following patches should be voted by Jenkins as -1:
- https://gerrit.wikimedia.org/r/c/mediawiki/extensions/RelatedArticles/+/969377
- https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/969376
It would be useful to check the error message on Jenkins and confirm it is clear what action is needed by someone who doesn't understand what we've done here.
Once this has been verified please tag as Verified and move to sign off as it does not need further review.
QA Results
AC | Status | Details |
---|---|---|
1 | ✅ | T346813#9309592 |
2 | ✅ | T346813#9309592 |