Mailing List Archive

ODP: PSA: ResourceLoader modules now default to mobile and desktop in 1.40
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:jrobson@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/
Re: ODP: PSA: ResourceLoader modules now default to mobile and desktop in 1.40 [ In reply to ]
Hi Marcin thanks for the question!

For now gadgets will still work as before. However on the long term please
see https://phabricator.wikimedia.org/T328610 where we are starting to make
preparations for changing that in future!

On Wed, Feb 1, 2023, 2:29 AM Marcin Szwarc <marcinszwarc@hotmail.com> wrote:

> 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 <jrobson@wikimedia.org>
> *Wys?ano: *?roda, 1 lutego 2023 00:47
> *Do: *Wikimedia developers <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-leave@lists.wikimedia.org
> https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia.org/