Page MenuHomePhabricator

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

Details

SubjectRepoBranchLines +/-
mediawiki/coremaster+7 -10 K
operations/mediawiki-configmaster+2 -30
operations/mediawiki-configmaster+7 -0
operations/mediawiki-configmaster+3 -0
operations/mediawiki-configmaster+1 -0
operations/mediawiki-configmaster+3 -2
mediawiki/coremaster+3 -0
operations/mediawiki-configmaster+6 -1
operations/mediawiki-configmaster+5 -0
mediawiki/extensions/WikiEditormaster+15 -15
mediawiki/skins/Vectormaster+2 -2
mediawiki/coremaster+4 -4
mediawiki/coremaster+10 K -3
mediawiki/coremaster+102 -28
operations/mediawiki-configmaster+2 -0
operations/mediawiki-configmaster+6 -2
operations/mediawiki-configmaster+6 -1
mediawiki/extensions/RelatedArticlesmaster+10 -10
mediawiki/extensions/CentralAuthmaster+12 -14
mediawiki/extensions/Citoidmaster+24 -25
mediawiki/extensions/Cardsmaster+9 -5
mediawiki/extensions/GuidedTourmaster+13 -10
mediawiki/coremaster+4 K -4 K
mediawiki/coremaster+143 -141
mediawiki/coremaster+8 -7
mediawiki/extensions/MobileFrontendmaster+139 -120
mediawiki/coremaster+9 K -1
Show related patches Customize query in gerrit

Related Objects

StatusSubtypeAssignedTask
ResolvedKrinkle
ResolvedKrinkle
ResolvedFlorian
ResolvedNone
ResolvedPeter
Resolved Jonas
ResolvedNikerabbit
Resolved matmarex
Resolved matmarex
ResolvedMooeypoo
ResolvedJdforrester-WMF
ResolvedEsanders
Resolvedmatthiasmullie
Resolvedmatthiasmullie
ResolvedAnomie
Resolved matmarex
ResolvedNone
Resolved matmarex
ResolvedKrinkle
Resolvedcscott
ResolvedKrinkle
ResolvedKrinkle

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

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?

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

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

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

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

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)

[..]

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?

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)

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)

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)

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