Hi,

Does this change affect on-wiki gadgets as well? They do have an option to 
specify the target in the definition (and it’s „desktop” by default).

User:Msz2001


Od: Jon Robson<mailto:jrob...@wikimedia.org>
Wysłano: środa, 1 lutego 2023 00:47
Do: Wikimedia developers<mailto:wikitech-l@lists.wikimedia.org>
Temat: [Wikitech-l] PSA: ResourceLoader modules now default to mobile and 
desktop in 1.40

TLDR: Any ResourceLoader module will now run on mobile or desktop site by 
default. Previously they would only load on the desktop site.

Hopefully this goes without disruption, but to be safe, if you maintain code 
used in Wikimedia production, please:
1) check your experiences over the course of this week in mobile/desktop site 
for JS errors/obvious UI errors (the former will be detected and monitored via 
logstash)
2) check that your repository doesn't fail the core 
testUnsatisfiableDependencies PHPUnit test. 3) Please check out the following 
Phabricator tickets to see if you are impacted on the long term [4][5].

# Background

Back in the early days of MobileFrontend, most of the JavaScript we had was not 
mobile friendly. To avoid this we created an allow-list system, where 
JavaScript was disabled by default and extensions/skins had to explicitly 
enable it by adding a "targets" property to their ResourceLoaderModule 
definition.

This was meant as a short term solution, but as with many things, attention got 
pulled elsewhere, and almost ten years later it was still there.

There have been many complaints about this over those years. Mainly:
1) It means we have split the ResourceLoader cache further
2) It's not intuitive - new code was getting shipped to desktop only 
experiences by default.
It also featured on the Developer Wishlist of 2017 at #34 [1].
3) Many older features don't work for community members for no credible reason.

# Recent developments

As one of the few remaining people responsible for doing this in the first 
time, I felt obliged to spend some time over December trying to pay off this 
technical debt. I audited code that was being removed by the targets system [2] 
and made the target explicit. Where modules were problematic on mobile, we 
marked them in such a way that it was clear that they should only run in a 
certain mode. This was only possible thanks to attention from Amir, Santosh, 
Thiemo, Lucas W, Tpt, Sohom D, Bartosz - thank you all.

Today, Roan merged a change that makes ResourceLoader modules default to the 
desktop AND mobile sites. This should be a harmless change, but may be 
unintentionally triggering failures in testUnsatisfiableDependencies tests as 
it seems some extension/skins are not included in the MediaWiki core PHPUnit 
test run. If you encounter this issue, the fix is relatively simple - you must 
define targets explicitly (see this example [6] and apologies in advance for 
any annoyance this may cause)

# For action

Please take extra care with your code that you test on both mobile/desktop 
sites and at mobile/desktop breakpoints. It's still possible to ship code to 
mobile/desktop and see these guidelines [3] if you need to do that or reply to 
this email with any questions you have.

# Next steps

This change will help with limiting the targets system to existing known cases. 
This has been a long term request of the performance team. Please see the 
follow up tickets to see if there is any action from you at your leisure [4][5].

[1] https://www.mediawiki.org/wiki/Developer_Wishlist/2017/results
[2] in https://phabricator.wikimedia.org/T324723
[3] 
https://www.mediawiki.org/wiki/ResourceLoader/Migration_guide_for_extension_developers#Target_system
[4] https://phabricator.wikimedia.org/T328497
[5] https://phabricator.wikimedia.org/T328498
[6] 
https://gerrit.wikimedia.org/r/c/mediawiki/extensions/PropertySuggester/+/885432/


_______________________________________________
Wikitech-l mailing list -- wikitech-l@lists.wikimedia.org
To unsubscribe send an email to wikitech-l-le...@lists.wikimedia.org
https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia.org/

Reply via email to