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

  1. #3271097: Replace CKEditor 4 with CKEditor 5 in the Standard profile and StandardTest
  2. ✅ Update tests to rely on CKEditor 5 instead of CKEditor 4 where appropriate
  3. ✅ Move integrations and integration tests implemented by other modules to CKEditor module
  4. ✅ Help topics
  5. ✅ Handle migrations
    • There are no migrations for CKEditor 4.
  6. ✅ Fix a few "forgotten" issues
  7. ✅ Create a new (semver-versioned) branch of the existing CKEditor contrib project.
  8. Deprecate the core CKEditor 4 module

Comments

xjm created an issue. See original summary.

quietone’s picture

Issue summary: View changes

There are no migrations for CKEditor 4 module.

However, the test results from #3270438: Remove CKEditor 4 from core has the following migration test failures.

  1. Drupal\Tests\aggregator\Functional\migrate_drupal_ui\d6\UpgradeTest
  2. Drupal\Tests\aggregator\Functional\migrate_drupal_ui\d7\UpgradeTest
  3. Drupal\Tests\migrate_drupal_ui\Functional\d6\Upgrade6Test
  4. Drupal\Tests\migrate_drupal_ui\Functional\d7\Upgrade7Test

These failures should be fixed in the issue that does the actual removal of CKEditor 4 from core.

xjm’s picture

Issue summary: View changes
xjm’s picture

Issue summary: View changes
quietone’s picture

Title: [meta] Deprecate the CKEditor 4 module and move it to contrib » [meta] Tasks to deprecate the CKEditor 4 module
Issue summary: View changes
Related issues: +#3274182: [Meta] Tasks to remove CKEditor 4 from core and move to contrib

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

lauriii’s picture

Issue summary: View changes

Opened issue to decide what to do about CKEditor 4 styles in core themes: #3285049: Decide what to do about CKEditor styles in core themes.

lauriii’s picture

Create a new (semver-versioned) branch of the existing CKEditor contrib project.

Given 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?

catch’s picture

@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.

wim leers’s picture

which would theoretically allow people to update to Drupal 10 before doing the ckeditor5 migration, instead of having to do ckeditor4-ckeditor5 first.

🤔 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 Editor config entity that is using the ckeditor Text Editor plugin).

While not impossible, it does seem odd?

catch’s picture

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 Editor config entity that is using the ckeditor Text Editor plugin).

Which 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.

wim leers’s picture

Time 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):

  1. #3270831: Make the CKEditor 4 → 5 upgrade path work even when the CKEditor 4 module is removed is now RTBC
  2. #3271094: Move Media CKEditor 4 integration into CKEditor was not even begun a few weeks ago and is now RTBC
  3. #3271057: Move Media Library CKEditor 4 integrations from Media into CKEditor was not even begun a few weeks ago and is now RTBC
  4. #3285049: Decide what to do about CKEditor styles in core themes is actively being discussed/decided

… 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). 👍

xjm’s picture

Given 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?

Surprised 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.

xjm’s picture

Issue tags: +Drupal 10 beta blocker
catch’s picture

Issue summary: View changes

Adding #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.

wim leers’s picture

Issue summary: View changes

All 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:

xjm’s picture

The 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.)

xjm’s picture

I confirmed we need to check at least this Help Topic to confirm the content is correct for CKE5, and edit if necessary:

./core/modules/help_topics/help_topics/editor.overview.html.twig

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).

wim leers’s picture

Issue summary: View changes
wim leers’s picture

quietone’s picture

Nice 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"?

wim leers’s picture

I'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 🥳

spokje’s picture

Issue summary: View changes
spokje’s picture

Issue summary: View changes
spokje’s picture

Issue summary: View changes
spokje’s picture

spokje’s picture

Issue summary: View changes
spokje’s picture

wim leers’s picture

wim leers’s picture

wim leers’s picture

Status: Active » Fixed

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.