Page MenuHomePhabricator

Upgrade to CodeMirror 6
Open, In Progress, Needs TriagePublicGoal

Description

This is Epic task for the CodeMirror 6 upgrade. This is a complete rewrite of the library that fixes many of the fundamental issues with CodeMirror 5. Specifically, accessibility issues, mobile compatibility, and RTL support should largely be addressed.

Checklist

These tasks are considered vital to retiring CodeMirror 5.

Deployment task: T357795

Beta feature task: T376735

Post-migration

Nice-to-haves, but not necessary for rolling out CodeMirror 6 on the WMF cluster, or retiring CodeMirror 5.

Explore introducing new features

Add support for more content models

Consider replacing other syntax highlighting systems

We should consider replacing other syntax highlighting systems (i.e. Ace) with CodeMirror to reduce maintenance burden and keep code DRY. (Tasks to be created once CodeMirror 6 has proven itself.)

  • CodeEditor could theoretically be completely replaced by CodeMirror.
  • SyntaxHighlight could possibly tie into CodeMirror so that we get the correct syntax highlighting within the <syntaxhighlight> tag while editing (when the language is supported).

Related Objects

StatusSubtypeAssignedTask
OpenFeatureNone
ResolvedFeatureBhsd
ResolvedFeatureMusikAnimal
ResolvedFeatureMusikAnimal
ResolvedMusikAnimal
In ProgressGoalNone
ResolvedFeatureMusikAnimal
ResolvedMusikAnimal
ResolvedMusikAnimal
ResolvedMusikAnimal
ResolvedBhsd
OpenBUG REPORTNone
ResolvedMusikAnimal
In ProgressMusikAnimal
OpenTheresNoTime
OpenNone
OpenMusikAnimal
OpenBUG REPORTNone
OpenMusikAnimal
ResolvedBUG REPORTMusikAnimal
OpenBUG REPORTNone
OpenBUG REPORTNone
OpenNone
ResolvedMusikAnimal
ResolvedMusikAnimal
OpenNone
OpenFeatureNone
Resolvedawight
ResolvedLena_WMDE
ResolvedLena_WMDE
OpenFeatureNone
ResolvedMusikAnimal
ResolvedBhsd
In ProgressMusikAnimal
OpenNone

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
MusikAnimal raised the priority of this task from Low to Needs Triage.May 31 2024, 4:03 AM

I'll take this Epic off of the Kanban. It's low priority for the team, but for me personally given my (limited) devoted work + volunteer time, I think calling it low priority may be sending the wrong message :)

We are getting close to 🚢ing!

We are having quite the struggle over at T357482: 2017 wikitext editor integration in CodeMirror 6. Unless we get everything fixed in a timely fashion, I'm going to shift our target deployment date to align with MW 1.43, when CodeMirror 5 is supposed to be formally deprecated. So, the new goal is sometime in November 2024. This is better I think anyway because the other features of CM6 should be in place by then, and more importantly the ability to toggle them on and off (T359498). This way, when our users finally get CM6, it's a big giant "wow" moment, and there should be no complaints as all features are off by default (except line numbering, see T347211). And of course, all this extra time mean more quality assurance, too.

I apologize for the long wait. I severely underestimated the effort required for this project, but the silver lining is throughout development we have added some amazing new features that will (hopefully) radically improve the editor experience.