Problem/Motivation
CKEditor 4 will be end-of-life at the end of 2023.
A new CKEditor 5 integration module has been added to core and is currently being stabilized: #3238333: Roadmap to CKEditor 5 stable in Drupal 9
Once it is stable, it must replace the existing CKEditor module for CKEditor 4 in the Standard profile, and CKEditor 4 must be deprecated and moved to contrib.
Proposed resolution
Start work on blockers for the module's deprecation now, so that we are ready to deprecate it right away once CKEditor 5 is stable.
See Remove a core module and move it to a contributed project
Remaining tasks
- ✅ #3271097: Replace CKEditor 4 with CKEditor 5 in the Standard profile and StandardTest
- ✅ Update tests to rely on CKEditor 5 instead of CKEditor 4 where appropriate
- ✅ Move integrations and integration tests implemented by other modules to CKEditor module
- #3270831: Make the CKEditor 4 → 5 upgrade path work even when the CKEditor 4 module is removed
- #3271057: Move Media Library CKEditor 4 integrations from Media into CKEditor
- #3271094: Move Media CKEditor 4 integration into CKEditor (postponed on Media Library)
- #3271046: Move integration test for CKEditor 4 and Inline Form Errors into CKEditor 4
- #3285049: Decide what to do about CKEditor styles in core themes
- ✅ Help topics
- ✅ Handle migrations
- There are no migrations for CKEditor 4.
- ✅ Fix a few "forgotten" issues
- ✅ Create a new (semver-versioned) branch of the existing CKEditor contrib project.
- Deprecate the core CKEditor 4 module
Comments
Comment #2
quietone commentedThere are no migrations for CKEditor 4 module.
However, the test results from #3270438: Remove CKEditor 4 from core has the following migration test failures.
These failures should be fixed in the issue that does the actual removal of CKEditor 4 from core.
Comment #3
xjmComment #4
xjmComment #5
quietone commentedComment #7
lauriiiOpened issue to decide what to do about CKEditor 4 styles in core themes: #3285049: Decide what to do about CKEditor styles in core themes.
Comment #8
lauriiiGiven that CKEditor 4 is going to be EOL, do we need to provide contrib module for CKEditor 4? If we provide a contrib module for this, what are the use cases for that? Who is responsible for maintaining it?
Comment #9
catch@lauriii I think the original idea was to copy the current ckeditor module to a contrib module, which would theoretically allow people to update to Drupal 10 before doing the ckeditor5 migration, instead of having to do ckeditor4-ckeditor5 first.
Comment #10
wim leers🤔 Interesting.
That would imply that Drupal core's update path needs to check if the contrib CKEditor 4 module is present. If it is, it would have to not execute the automatic update path (i.e. update every
Editorconfig entity that is using theckeditorText Editor plugin).While not impossible, it does seem odd?
Comment #11
catchWhich upgrade path is this? I thought the 'upgrade path' was intended to happen when ckeditor5 is installed - i.e. in 9.5.x we wouldn't be force-enabling ckeditor5 and force-uninstalling ckeditor4, but expecting site owners to do this themselves before updating to 10.0.x
And if we had ckeditor4 in contrib, it'd mean you could update to 10.0.x, then install ckeditor5 and uninstall ckeditor4 - but otherwise the same as it would be in 9.5.x.
We can't do a 10.0.x-only upgrade path that uninstalls ckeditor4 if we remove the module entirely, although I guess we could make it obsolete and uninstall the obsolete module, but I haven't seen an issue discussing this anywhere yet.
Comment #12
wim leersTime for a status update!
We did a big push to reduce future risk for getting the CKEditor 4 module removed (because of the recently painful experience with removing Quick Edit):
… and #3270734: Update Editor + CKEditor 5 module to not use CKEditor 4 in tests has been blocked on review for ~2 months.
That means 100% of the child issues here are either done (3), RTBC (3), NR (1) or actively discussed (1). 👍
Comment #13
xjmSurprised by this question. Yes, I think we need to provide a contributed project for CKEditor 4, so that sites don't need to entirely block their D10 upgrade on CKEditor if they're otherwise ready for D10. CKEditor 5 is, far and away, the biggest and most disruptive change in D10.
The contributed module would receive coordinated security releases alongside D9 core to that end, and no other maintenance or bug fixes. The project page would have an orange warning box that CKSource is ending security coverage for CKE4 at the end of 2023, and so sites should update to CKEditor 5 as soon as possible.
Once D9 is end-of-life, core maintainers would no longer provide security coverage for the module, and I imagine we'd mark the CKEditor 4 contrib module unsupported at that time.
Comment #14
xjmComment #15
catchAdding #3271097: Replace CKEditor 4 with CKEditor 5 in the Standard profile and StandardTest to the issue summary since we can't actually deprecate until that step is done too.
Comment #16
quietone commentedChange parent to the 9.5 meta
Comment #17
wim leersAll issues in the issue summary are done except #3270734: Update Editor + CKEditor 5 module to not use CKEditor 4 in tests (and #3271097: Replace CKEditor 4 with CKEditor 5 in the Standard profile and StandardTest, but that cannot be done yet until the CKEditor 5 module is stable).
But not everything in the issue summary has issues yet! So:
9.5.xbranch, all tests using the CKEditor 4 module are in the following directories:core/modules/ckeditor(obviously),core/modules/quickedit(Quick Edit is about to be removed, so is not a problem),core/modules/ckeditor5(being addressed in #3270734: Update Editor + CKEditor 5 module to not use CKEditor 4 in tests) andcore/modules/editor(also being addressed in #3270734: Update Editor + CKEditor 5 module to not use CKEditor 4 in tests), which means this will be done once #3270734: Update Editor + CKEditor 5 module to not use CKEditor 4 in tests is done!Comment #18
xjmThe thing about Help Topics is that they are combined docs about multiple subsystems, grouped into meaningful topics. So sometimes Help Topics discussing a feature are outside of the module they mention. So we need to check that. There is surely a page somewhere about WYSIWYG content editing, and we should just check it for CKE-specific stuff (both for this removal, and for docs gate soft-blocker for CKE5.)
Comment #19
xjmI confirmed we need to check at least this Help Topic to confirm the content is correct for CKE5, and edit if necessary:
Edit: At the least, it looks like we need to update the module name in the above file. We also should verify that the plugin configuration section is accurate for CKE5, or file an issue to have it updated with info from CKE5's
hook_help()and/or handbook links if appropriate. Needs issue(s).Comment #20
wim leers#18 + #19: @lauriii just did that: #3304596: Update editor help topic page to mention CKEditor 5. 👍
Comment #21
wim leersYay #3304596: Update editor help topic page to mention CKEditor 5 is also in!
Now this is down to:
… because only then can we do #3304326: Deprecate CKEditor 4 module in 9.5, but that does already have an MR 👍
Comment #22
quietone commentedNice to see Steps 1, 2, and 3 completed!
@Wim Leers, what is the state of Step 4 in the IS, "Create a new (semver-versioned) branch of the existing CKEditor contrib project"?
Comment #23
wim leersI'm working on that today! It was blocked on #3270734: Update Editor + CKEditor 5 module to not use CKEditor 4 in tests, and that was committed late on Friday 🥳
Comment #24
spokjeComment #25
spokjeComment #26
spokjeComment #27
spokjeComment #28
spokjeComment #29
spokjeComment #30
wim leersTime to update the remaining tasks.
Recently, #3306720: Replace ckeditor with ckeditor5 in twig_theme_test.attach_library.html.twig and #3306712: Update NoJavaScriptAnonymousTest to use Standard profile instead of listing modules landed. #3306715: Replace ckeditor with editor_test in editor_private_test.info.yml is RTBC.
Also, the structure was a bit confusing. Cleaned that up.
Comment #31
wim leers#3306715: Replace ckeditor with editor_test in editor_private_test.info.yml landed.
Comment #32
wim leers#3304326: Deprecate CKEditor 4 module in 9.5 landed! 🥳