Upgrade to jQuery 3
Closed, ResolvedPublic

Description

After we ended support for Internet Explorer 8 in our Grade A "JavaScript" run-time (T118303 and https://gerrit.wikimedia.org/r/252383), we now start work on aligning the remainder differences between MediaWiki and jQuery browser support. Not all of it, but at least the bottom line of Grade A support so that we can upgrade to jQuery 3.0.

In the next release of jQuery, the 1.x and 2.x branches are being rebranded. The jQuery 2.x branch naturally becomes jQuery 3.0. The jQuery 1.x branch becomes jQuery 3.0 Compat. This better reflects what 1.x branch is (that is, the same API with additional support code for MSIE 6-8).

However, during the jQuery 3.0 alpha release cycle, it has become clear that there is no longer much need in maintaining the Compat branch. After Microsoft publicly announced that MSIE 8, 9 and 10 are EOL effective immediately, jQuery followed suit. jQuery 3.0 will still support IE9+, but not IE8. As such, jQuery Compat (for IE6-8) will no longer be maintained.

There are a few other support differences between jQuery 1.x (the version we currently use) and jQuery 2.x/3.x, so we're not quite there. Specifically, older versions of Safari (Mac), Mobile Safari (iOS), and Android will likely encounter run-time failures if we don't blacklist them from Grade A (so we may provide the non-javascript Grade C experience instead.)

Timeline

Enabled forWhenContact personCode change
MediaWiki core (DefaultSettings)13 April 2017@Krinkle, @Jdforrester-WMFrMWbf69459d5011: Upgrade to jQuery v3
MediaWiki-Vagrant13 April 2017rMWbf69459d5011: Upgrade to jQuery v3
Beta Cluster29 June 2017@Krinkle, @Jdforrester-WMFrOMWC3dce3fccfdeb: Enable wgUsejQueryThree on the Beta Cluster
Production group0 (test.wikipedia.org, test2.wikipedia.org)24 July 2017rOMWCeb0602173542: Enable jQuery 3 on test.wikipedia.org and test2.wikipedia.org
Production group0 (test.wikidata.org, www.mediawiki.org)19 August 2017rOMWCff893c78a791: Enable jQuery 3 on mediawiki.org and test.wikidata.org
Production opt-in (sv.wikipedia.org)28 August 2017@NirmosrOMWCc1bf0699dc44: Enable jQuery 3 on nlwiki, svwiki, plwiki
Production opt-in (pl.wikipedia.org)28 August 2017@matmarexrOMWCc1bf0699dc44: Enable jQuery 3 on nlwiki, svwiki, plwiki
Production opt-in (nl.wikipedia.org)28 August 2017@KrinklerOMWCc1bf0699dc44: Enable jQuery 3 on nlwiki, svwiki, plwiki
Production opt-in (nl.wikibooks, nl.wikinews, nl.wikiquote, nl.wikisource, nl.wiktionary)1 September 2017@KrinklerOMWCfdcaca5c7daa: Enable jQuery 3 on nlwiki sister projects (b, n, q, s, wikt)
Production opt-in (meta.wikimedia.org)19 September 2017@KrinklerOMWC56154c172a8d: Enable jQuery 3 on meta.wikimedia.org
Production opt-in (commons.wikimedia.org)21 September 2017@KrinklerOMWC8037862a84b0: Enable jQuery 3 on commons.wikimedia.org
Production all Wiktionary.org2 October 2017rOMWC662eb31fcca2: Enable jQuery 3 on Wiktionary sites
Production group1 (all non-Wikipedia.org)4 October 2017rOMWCf3da9576ee97: Enable jQuery 3 on most group1 wikis (non-Wikipedia)
Production group2 (all Wikipedia.org)5 October 2017rOMWC966f127f9064: Enable jQuery 3 on all wikis

Documentation

jQuery 1.11 to 1.12 (or jQuery 2.1 to jQuery 2.2)

jQuery 1.12 to jQuery 3.0 (or jQuery 2.2 to jQuery 3.0)

jQuery 3.x

Blockers

Regressions that may affect us:


T46740: Upgrade jQuery from 1.8.x to 1.11.x

Related Objects

StatusAssignedTask
OpenKrinkle
ResolvedKrinkle
ResolvedFlorian
ResolvedNone
ResolvedPeter
ResolvedJonas
ResolvedNikerabbit
Resolvedmatmarex
Resolvedmatmarex
ResolvedMooeypoo
ResolvedJdforrester-WMF
ResolvedEsanders
Resolvedmatthiasmullie
Resolvedmatthiasmullie
ResolvedAnomie
Resolvedmatmarex
ResolvedNone
Resolvedmatmarex
ResolvedKrinkle
Resolvedcscott
ResolvedKrinkle
ResolvedKrinkle
There are a very large number of changes, so older changes are hidden. Show Older Changes
Restricted Application added a subscriber: jeblad. · View Herald TranscriptAug 25 2017, 5:17 AM

I'm also available for investigating and forwarding issues if you want to deploy to svwiki.

Technical issues are usually reported at https://sv.wikipedia.org/wiki/Wikipedia:Wikipediafr%C3%A5gor, which is roughly the equivalent to https://en.wikipedia.org/wiki/Wikipedia:Village_pump_(technical). If I see anything there that might be related to jQuery 3, I can always ping you and translate the message.

jeblad removed a subscriber: jeblad.Aug 25 2017, 11:18 PM

Change 373987 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[operations/mediawiki-config@master] Enable jQuery 3 on nlwiki, svwiki, plwiki

https://gerrit.wikimedia.org/r/373987

Change 373987 merged by jenkins-bot:
[operations/mediawiki-config@master] Enable jQuery 3 on nlwiki, svwiki, plwiki

https://gerrit.wikimedia.org/r/373987

@Nirmos Thanks. The update has now been applied.

I see JQMIGRATE: jQuery(window).on('load'...) called after load event occurred in the console. This does not happen on every page load. Is this something to worry about?

TheDJ added a subscriber: dschwen.Aug 29 2017, 9:16 AM

Seems wikiminiatlas is using some bind/unbinds. I have created a patch for @dschwen.

I merged and deployed the patch by @TheDJ , thanks!

Change 374850 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[operations/mediawiki-config@master] Enable jQuery 3 on nlwiki sister projects (b, n, q, s, wikt)

https://gerrit.wikimedia.org/r/374850

Reedy removed a subscriber: Reedy.Aug 30 2017, 6:22 PM

Change 374850 merged by jenkins-bot:
[operations/mediawiki-config@master] Enable jQuery 3 on nlwiki sister projects (b, n, q, s, wikt)

https://gerrit.wikimedia.org/r/374850

Krinkle updated the task description. (Show Details)Sep 4 2017, 10:23 PM

Change 378802 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[operations/mediawiki-config@master] Enable jQuery 3 on metawiki

https://gerrit.wikimedia.org/r/378802

Change 378803 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[operations/mediawiki-config@master] Enable jQuery 3 on commons.wikimedia.org

https://gerrit.wikimedia.org/r/378803

Krinkle updated the task description. (Show Details)Sep 19 2017, 6:16 PM

Change 378802 merged by jenkins-bot:
[operations/mediawiki-config@master] Enable jQuery 3 on meta.wikimedia.org

https://gerrit.wikimedia.org/r/378802

Mentioned in SAL (#wikimedia-operations) [2017-09-19T23:17:36Z] <thcipriani@tin> Synchronized wmf-config/InitialiseSettings.php: SWAT: [[gerrit:378802|Enable jQuery 3 on meta.wikimedia.org]] T124742 (duration: 00m 50s)

Change 378803 merged by jenkins-bot:
[operations/mediawiki-config@master] Enable jQuery 3 on commons.wikimedia.org

https://gerrit.wikimedia.org/r/378803

Mentioned in SAL (#wikimedia-operations) [2017-09-21T00:09:25Z] <catrope@tin> Synchronized wmf-config/InitialiseSettings.php: Enable jQuery 3 on commons (T124742) (duration: 00m 49s)

Change 379947 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[operations/mediawiki-config@master] Enable jQuery 3 on Wiktionary sites

https://gerrit.wikimedia.org/r/379947

Change 379948 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[operations/mediawiki-config@master] Enable jQuery 3 on most group1 wikis (non-Wikipedia)

https://gerrit.wikimedia.org/r/379948

Krinkle updated the task description. (Show Details)Sep 22 2017, 11:02 PM

Change 379949 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[operations/mediawiki-config@master] Enable jQuery 3 on all wikis

https://gerrit.wikimedia.org/r/379949

Krinkle updated the task description. (Show Details)Sep 22 2017, 11:10 PM
Krinkle updated the task description. (Show Details)
Krinkle moved this task from Archive to Announce in next Tech/News on the User-notice board.EditedSep 22 2017, 11:18 PM

[..]

For Tech News:

[Advanced] <translate>The jQuery library will be upgraded to version 3 in September 2017. Wikis can ask on Phabricator to get it early, so they can help find and solve problems now.</translate> [https://phabricator.wikimedia.org/T124742]

Fast-forward one month, jQuery 3 is now enabled on 14 wikis (including 3 Wikipedia wikis, Meta-Wiki, and Wikimedia Commons). Thanks @Nirmos, @TheDJ, @matmarex, and @Jdforrester-WMF for your help and for being on the lookout.

Upcoming:

  • Monday 25 September (week of 1.31.0-wmf.1): All Wiktionary wikis.
  • Tuesday 3 October (week of 1.31.0-wmf.2): All non-Wikipedia wikis. (group1)
  • Thursday 5 October (week of 1.31.0-wmf.2): All Wikipedia wikis. (group2)

For Tech News:

[Advanced] <translate>The jQuery library will be upgraded to version 3 on Wiktionary wikis from 25 September. It will be on all non-Wikipedia wikis from 5 October. It will be on all wikis from 5 September (calendar).</translate> [https://phabricator.wikimedia.org/T124742]

This was too late to get into this week's Tech/News. Post it next week (i.e. going out on 2 October)? Delay the schedule?

Krinkle updated the task description. (Show Details)EditedSep 25 2017, 5:32 PM

This was too late to get into this week's Tech/News. Post it next week (i.e. going out on 2 October)? Delay the schedule?

Okay. Sounds good to me. I've updated the deployment calendar, and the schedule in the task description.

For Tech News:

[Advanced] <translate>The jQuery library will be upgraded to version 3 on Wiktionary wikis from 2 October. It will be on all non-Wikipedia wikis from 4 October. It will be on all wikis from 5 October.</translate> [https://phabricator.wikimedia.org/T124742]

That "5 September" should be "5 October".

Change 379947 merged by jenkins-bot:
[operations/mediawiki-config@master] Enable jQuery 3 on Wiktionary sites

https://gerrit.wikimedia.org/r/379947

Mentioned in SAL (#wikimedia-operations) [2017-10-02T23:19:36Z] <catrope@tin> Synchronized wmf-config/InitialiseSettings.php: Update WMF mailing address (T173684) and enable jQuery 3 on Wiktionaries (T124742) (duration: 00m 48s)

TheDJ added a comment.Oct 3 2017, 8:38 AM

BTW. small note, this is planned for en.wp on October 5th, but I myself won't be available that day.

Krinkle updated the task description. (Show Details)Oct 3 2017, 3:43 PM
Krinkle updated the task description. (Show Details)

Change 379948 merged by jenkins-bot:
[operations/mediawiki-config@master] Enable jQuery 3 on most group1 wikis (non-Wikipedia)

https://gerrit.wikimedia.org/r/379948

Mentioned in SAL (#wikimedia-operations) [2017-10-04T18:09:51Z] <niharika29@tin> Synchronized wmf-config/InitialiseSettings.php: Enable jQuery 3 on most group1 wikis (T124742) (duration: 00m 51s)

Krinkle updated the task description. (Show Details)Oct 4 2017, 10:23 PM

Change 379949 merged by jenkins-bot:
[operations/mediawiki-config@master] Enable jQuery 3 on all wikis

https://gerrit.wikimedia.org/r/379949

Mentioned in SAL (#wikimedia-operations) [2017-10-05T18:13:12Z] <thcipriani@tin> Synchronized wmf-config/InitialiseSettings.php: SWAT: [[gerrit:379949|Enable jQuery 3 on all wikis]] T124742 (duration: 00m 52s)

Change 382510 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[mediawiki/core@master] jQuery: Remove jQuery 1 legacy option

https://gerrit.wikimedia.org/r/382510

Krinkle updated the task description. (Show Details)
Krinkle updated the task description. (Show Details)

Change 382510 merged by jenkins-bot:
[mediawiki/core@master] jQuery: Remove jQuery 1 legacy option

https://gerrit.wikimedia.org/r/382510

Jdforrester-WMF closed this task as Resolved.Oct 18 2017, 7:37 PM
Peter awarded a token.Oct 18 2017, 7:46 PM
Peter rescinded a token.
Perhelion removed a subscriber: Perhelion.