Page MenuHomePhabricator

Deprecate use of CodeMirror 5
Closed, ResolvedPublic

Description

This task outlines the planned deprecation process for CodeMirror 5.

Checklist
  • Emit warning for use of CM5 on a CM6-enabled wiki (r1069290)
  • Deprecate and emit warning for use of the WikiEditor-specific ext.CodeMirror.switch hook (r1123812, depends on r1109533)
  • Replace old modules with .v6 ones and add .v6 aliases, with the latter marked as deprecated
  • Remove .v6 modules by MW 1.47 or even sooner

Details

Related Changes in Gerrit:
SubjectAuthorRepoBranchLines +/-
Bhsdmediawiki/extensions/CodeMirrormaster+16 -53
MusikAnimalmediawiki/extensions/Mathwmf/1.46.0-wmf.24+1 -1
MusikAnimalmediawiki/extensions/CodeMirrorwmf/1.46.0-wmf.24+465 -17 K
MusikAnimalmediawiki/extensions/CodeMirrormaster+465 -17 K
MusikAnimalmediawiki/extensions/Mathmaster+1 -1
MusikAnimalmediawiki/extensions/CodeMirrorwmf/1.46.0-wmf.20+31 -5
MusikAnimalmediawiki/extensions/CodeMirrormaster+31 -5
MusikAnimalmediawiki/extensions/CodeMirrormaster+1 -3 K
MusikAnimalmediawiki/extensions/CodeMirrormaster+83 -23
MusikAnimalmediawiki/extensions/CodeMirrormaster+5 -1
MusikAnimalmediawiki/extensions/CodeMirrormaster+755 -389
MusikAnimalmediawiki/extensions/CodeMirrormaster+11 K -31
MusikAnimalmediawiki/extensions/CodeMirrormaster+9 -0
Show related patches Customize query in gerrit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Change #1069290 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CodeMirror@master] ext.CodeMirror.js: emit deprecation warning when using CM5 on CM6 wiki

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

Change #1069290 merged by jenkins-bot:

[mediawiki/extensions/CodeMirror@master] ext.CodeMirror.js: emit deprecation warning when using CM5 on CM6 wiki

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

Change #1108354 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CodeMirror@master] CodeMirror: move toggling logic to parent class, add life cycle methods

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

Change #1114126 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CodeMirror@master] extension.json: rm unused CM5 modules, deprecate xml/htmlmixed/php modes

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

Change #1114126 merged by jenkins-bot:

[mediawiki/extensions/CodeMirror@master] extension.json: add CM6 modes for JS, CSS, and JSON; deprecate CM5 modes

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

Change #1108354 merged by jenkins-bot:

[mediawiki/extensions/CodeMirror@master] CodeMirror: finalize stable interface for consumption by integrations

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

Change #1123812 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CodeMirror@master] CodeMirrorWikiEditor: add deprecation msg to ext.CodeMirror.toggle hook

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

Change #1123812 merged by jenkins-bot:

[mediawiki/extensions/CodeMirror@master] CodeMirrorWikiEditor: add deprecation msg to ext.CodeMirror.switch hook

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

Change #1129024 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CodeMirror@master] CodeMirror: bubble keyup, keydown and scroll events to the textarea

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

Change #1129024 merged by jenkins-bot:

[mediawiki/extensions/CodeMirror@master] CodeMirror: bubble keyup, keydown and scroll events to the textarea

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

Change #1169280 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CodeMirror@master] Remove unused CM5 ResourceLoader modules deprecated in MW 1.44

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

Change #1169280 merged by jenkins-bot:

[mediawiki/extensions/CodeMirror@master] Remove unused CM5 ResourceLoader modules deprecated in MW 1.44

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

Change #1251213 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CodeMirror@master] CM5: add more aggressive warnings about CM5 deprecation

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

Change #1251213 merged by jenkins-bot:

[mediawiki/extensions/CodeMirror@master] CM5: add more aggressive warnings about CM5 deprecation

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

Change #1254468 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CodeMirror@wmf/1.46.0-wmf.20] CM5: add more aggressive warnings about CM5 deprecation

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

Change #1254468 merged by jenkins-bot:

[mediawiki/extensions/CodeMirror@wmf/1.46.0-wmf.20] CM5: add more aggressive warnings about CM5 deprecation

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

Mentioned in SAL (#wikimedia-operations) [2026-03-18T03:09:46Z] <musikanimal@deploy2002> Started scap sync-world: Backport for [[gerrit:1254468|CM5: add more aggressive warnings about CM5 deprecation (T373720)]]

Mentioned in SAL (#wikimedia-operations) [2026-03-18T03:11:49Z] <musikanimal@deploy2002> musikanimal: Backport for [[gerrit:1254468|CM5: add more aggressive warnings about CM5 deprecation (T373720)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2026-03-18T03:22:09Z] <musikanimal@deploy2002> Finished scap sync-world: Backport for [[gerrit:1254468|CM5: add more aggressive warnings about CM5 deprecation (T373720)]] (duration: 12m 22s)

Change #1271092 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CodeMirror@master] Promote CM6 out of beta, remove CM5 modules, and add v6 aliases

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

Change #1271100 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/Math@master] ext.math.editpage: update CodeMirror RL module

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

I find another extension that has hard dependency on the legacy CodeMirror 5 modules: MediaWiki-extensions-TEI

Edited: This extension seems to have been broken anyway, so it does not matter.

Change #1271092 merged by jenkins-bot:

[mediawiki/extensions/CodeMirror@master] Promote CM6 out of beta, remove CM5 modules, and add v6 aliases

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

MusikAnimal claimed this task.
MusikAnimal updated the task description. (Show Details)

Change #1271100 merged by jenkins-bot:

[mediawiki/extensions/Math@master] ext.math.editpage: update CodeMirror RL module

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

@MusikAnimal I see v6 modules have been renamed. Does this affect user scripts and gadgets? If it does, then when will the change be deployed? There are quite a few scripts that would need updating.

@NguoiDungKhongDinhDanh:

[...] [T]here are only ~25 instances of the v6 modules being used on-wiki, so I can fix those manually as a global interface editor. [...]

Change #1275997 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CodeMirror@wmf/1.46.0-wmf.24] Promote CM6 out of beta, remove CM5 modules, and add v6 aliases

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

Change #1276000 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/Math@wmf/1.46.0-wmf.24] ext.math.editpage: update CodeMirror RL module

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

Change #1275997 merged by jenkins-bot:

[mediawiki/extensions/CodeMirror@wmf/1.46.0-wmf.24] Promote CM6 out of beta, remove CM5 modules, and add v6 aliases

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

Change #1276000 merged by jenkins-bot:

[mediawiki/extensions/Math@wmf/1.46.0-wmf.24] ext.math.editpage: update CodeMirror RL module

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

Mentioned in SAL (#wikimedia-operations) [2026-04-21T22:02:08Z] <musikanimal@deploy1003> Started scap sync-world: Backport for [[gerrit:1275997|Promote CM6 out of beta, remove CM5 modules, and add v6 aliases (T373720)]], [[gerrit:1276002|VisualEditor.CodeMirror.less: remove CM5 styles]], [[gerrit:1276004|CodeEditorHooks: remove temporary code for CodeMirror beta feature (T419332)]], [[gerrit:1276005|DescriptionField: use new module name for loading CodeMirror]], [[gerrit:1275998|Ho

Mentioned in SAL (#wikimedia-operations) [2026-04-21T22:18:58Z] <musikanimal@deploy1003> musikanimal: Backport for [[gerrit:1275997|Promote CM6 out of beta, remove CM5 modules, and add v6 aliases (T373720)]], [[gerrit:1276002|VisualEditor.CodeMirror.less: remove CM5 styles]], [[gerrit:1276004|CodeEditorHooks: remove temporary code for CodeMirror beta feature (T419332)]], [[gerrit:1276005|DescriptionField: use new module name for loading CodeMirror]], [[gerrit:1275998|Hooks: remove

Mentioned in SAL (#wikimedia-operations) [2026-04-21T22:37:25Z] <musikanimal@deploy1003> Finished scap sync-world: Backport for [[gerrit:1275997|Promote CM6 out of beta, remove CM5 modules, and add v6 aliases (T373720)]], [[gerrit:1276002|VisualEditor.CodeMirror.less: remove CM5 styles]], [[gerrit:1276004|CodeEditorHooks: remove temporary code for CodeMirror beta feature (T419332)]], [[gerrit:1276005|DescriptionField: use new module name for loading CodeMirror]], [[gerrit:1275998|H

@MusikAnimal could you please clarify what error(s) you encountered?

Sorry I wasn't more specific at the time; I felt rushed as this was in the midst of a deployment. Trying again just now, everything seemed to work just fine :)

To my recollection:

  • I made the same changes as just now
  • Clicked "Show changes" to make the "Publish changes" button active (which I think is a gadget or something on zhwiki)
  • Clicking on "Publish changes" did noting at all; No user-facing errors. I thought it was a bug with the aforementioned "must preview first" script, so:
  • I ran $('#editform').submit() from the JS console to try to get around it
  • The form apparently submitted and the page refreshed, but no changes were saved, and again no user-facing errors
  • The JS console showed a bunch of errors related to hCAPTCHA, hence my conclusion

I also noticed this report on enwiki VPT which sounded very similar to my experience. They apparently had something blocking hCAPTCHA. I did not (all JS was permitted on my end). It's possible one of my privacy-related browser extensions was at fault, but I didn't change anything and I was able to make the same edit today without issue.

I do recall however upon initial visit, I was not logged into zhwiki. I clicked "Login" and the SUL did its thing, and I was logged in. The fact I had the ability to edit this JS at all proves I was logged in, but anyway, maybe the fact that I had only recently logged in had something to do with it? Just a guess.

Change #1277239 had a related patch set uploaded (by Bhsd; author: Bhsd):

[mediawiki/extensions/CodeMirror@master] styles: clean up styles for CodeMirror 5

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

Change #1277239 merged by jenkins-bot:

[mediawiki/extensions/CodeMirror@master] styles: clean up styles for CodeMirror 5

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