Problem/Motivation

CKEditor 5 has now resolved all its stable blockers, with the exception of one upstream accessibility bug that will block Drupal 10.0.0-rc1 and 9.5.0-rc1.

Proposed resolution

Mark the module stable in core and make any other changes necessary for this (e.g., moving templates and CSS around, etc.)

Remaining tasks

TBD

User interface changes

CKEditor 5 becomes a stable module on the Extensions page.

API changes

CKEditor 5 is stable in 9.5 and above, and therefore subject to stable code policies.

Data model changes

None.

Release notes snippet

CKEditor 5 module added as a new experimental replacement for CKEditor 4

CKEditor 4 will reach end-of-life in 2023. A separate core module supporting CKEditor 5 is now stable.

CKEditor 5 differs significantly from CKEditor 4, so sites and modules should update to it now in preparation for the release of Drupal 10.0.0 on December 14, 2022.

CommentFileSizeAuthor
#20 interdiff.txt1.18 KBlauriii
#20 3307186-20.patch28.76 KBlauriii
#15 3307186-15.patch28.08 KBlauriii

Issue fork drupal-3307186

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

xjm created an issue. See original summary.

xjm’s picture

Added a lengthy release note based on what was in 9.3.0. It might need some further improvements and an updated CR to link in place of the old one.

xjm’s picture

Status: Active » Needs review
xjm’s picture

So yep, we need to copy some templates and CSS into Stable 9. (Anything for Starterkit?). Also into Stable 8 apparently (mommy can we deprecate it please).

xjm’s picture

Status: Needs review » Needs work
wim leers’s picture

Assigned: Unassigned » wim leers

Pairing with @lauriii on this.

wim leers’s picture

Assigned: wim leers » Unassigned
Status: Needs work » Needs review

@lauriii and I followed the pattern established by #3291797: Refactor Drupal 10 settings tray / off-canvas to use modern CSS.

luke.leber’s picture

I don't see a mention of custom modules in the CR. It would be worth at least a mention that any custom work thrown at ckeditor4 over the course of 8.x and 9.x will have to be either trashed or rewritten.

Likewise, it should probably be clarified that the automatic upgrade path is guaranteed for core functionality only. Any site owners that have any contrib cke4 modules installed should proceed with caution.

lauriii made their first commit to this issue’s fork.

nod_’s picture

Changes looks good to me +1

spokje’s picture

wim leers’s picture

Status: Needs review » Reviewed & tested by the community

Ready to be committed to 9.5.x; still needs a 10.0.x + 10.1.x patch.

I'm not sure if we want to retroactively mark this stable in 9.4.x? 🤔 That'd mean that CKEditor 5 would be experimental in 9.4.0 through 9.4.5 and stable in 9.4.6. I don't think we've ever done that before.

catch’s picture

Status: Reviewed & tested by the community » Needs work

Let's do the 10.x and 9.x commits together.

Also a question on the MR (which also affects the 9.4 backport question).

lauriii’s picture

Status: Needs work » Needs review
StatusFileSize
new28.08 KB

Status: Needs review » Needs work

The last submitted patch, 15: 3307186-15.patch, failed testing. View results

catch’s picture

I can understand marking them internal, but why couldn't we have started out like that, is it just an oversight?

lauriii’s picture

I don't think the pattern to mark internal. existed when these library definitions were created so we didn't consider that at the time. Also, there was some uncertainty about whether we should mark the libraries internal or not but now it's very apparent that it's required to be able to keep up with the faster release cadence that CKEditor 5 is following.

This was all raised up now given that the Stable related tests started failing after marking CKEditor 5 stable. We started by bypassing those libraries manually in the tests given that we had already marked most of the code inside those libraries internal within the code itself. As we were doing that, we realized that we have some other libraries following the pattern of prefixing an internal library with internal., so we thought we might have to follow that too. We could theoretically split this step into another issue, but we could only test that it was all done correctly on this issue, hence the proposal to do it all in a single issue.

catch’s picture

OK I think that is fair enough. I don't know what it means for a 9.4 backport, but we should get this into 10.1-9.5 first anyway.

Looks like a real test failure on the MR still.

lauriii’s picture

Status: Needs work » Needs review
StatusFileSize
new28.76 KB
new1.18 KB

This should address the test failures.

wim leers’s picture

Status: Needs review » Needs work

The patch in #20 does not apply to 9.5.x, because the IE11 warnings that CKE5 will show in Drupal 9 have been removed in Drupal 10. So we'll need two patches. 😬

lauriii’s picture

Status: Needs work » Needs review

The MR is against 9.5.x and should be up to date ✌️

Wim Leers credited bnjmnm.

Wim Leers credited zrpnr.

wim leers’s picture

Issue summary: View changes
Status: Needs review » Reviewed & tested by the community
Issue tags: -Needs change record

#22 Aha, glad to be wrong! 😄

Change record created: https://www.drupal.org/node/3308362

The release notes in the issue summary were really targeted at experimental module users, not stable module users. So, updated that. Also incorporated @Luke.Leber's concerns.

Finally, crediting all participants in this issue as well as all contributors to the contributed CKEditor 5 module.

catch’s picture

The release notes should usually just be a couple of lines pointing to the change record. Since they were nearly identical I went ahead and made that change.

Also tagging for release highlights for both 9.5.0 and 10.0.0

  • catch committed 654241a on 10.0.x
    Issue #3307186 by lauriii, xjm, Wim Leers, catch, hooroomoo, yash.rode,...
  • catch committed aa2f8c3 on 10.1.x
    Issue #3307186 by lauriii, xjm, Wim Leers, catch, hooroomoo, yash.rode,...
catch’s picture

Version: 9.5.x-dev » 9.4.x-dev
Status: Reviewed & tested by the community » Patch (to be ported)
Issue tags: +Needs release manager review

OK then. Committed/pushed to 10.1.x and cherry-picked to 10.0.x, and then the MR diff to 9.5.x separately.

This was a massive effort, really nice to see the module stable and ckeditor4 close to removal.

Moving back to 9.4.x for discussion, will get second+ opinions from the other release managers.

If this was only marking the module stable, I'd definitely be keen to backport to 9.4 to encourage people to start switching asap, with the libraries moving around I am not so sure, but given it's unstable in 9.4 maybe we can just backport it like we have other changes.

  • catch committed 499c957 on 9.5.x
    Issue #3307186 by lauriii, xjm, Wim Leers, catch, hooroomoo, yash.rode,...
wim leers’s picture

but given it's unstable in 9.4 maybe we can just backport it like we have other changes.

This is what I was thinking 🤓 It's experimental in 9.4, so … why not?

martijn de wit’s picture

Thanks to all people who made this happen!

So there are a dozen of modules that now need an update path to make their module not only compatible with D10 but also with CKEditor 5. Could a CKEditor update day be organised, maybe during a D10 porting day ? :D :D

I admit I could use some help with 2 modules that have custom filters ;)

catch’s picture

I was initially neutral on backporting this to 9.4

Then I thought it would be a very good thing if new 9.4 sites started on ckeditor5 for the next three months - this would be a very good reason to backport.

Then I realised that the standard profile in 9.4 still has ckeditor 4 enabled instead of ckeditor 5, so if we don't also backport that change, then new sites will probably still end up with ckeditor4 installed.

So... no idea tbh.

wim leers’s picture

Changing Standard install profile in a patch release would be unprecedented and quite possibly disruptive.

Making the CKEditor 5 module stable in 9.4.6 would not be disruptive IMHO; if anything, it would be empowering: it'll allow sites to switch to CKEditor 5 now, before 9.5.0 is even out.

So I personally still think that backporting this issue to 9.4.x but not #3307186: Mark CKEditor 5 stable is the best course of action 🤓

catch’s picture

it'll allow sites to switch to CKEditor 5 now, before 9.5.0 is even out.

Yes I still think that would be useful, it's just going to be a smaller number of sites.

wim leers’s picture

Agreed. We might as well not do it I guess … but on the other hand, it might convince some additional sites to make the switch before upgrading to Drupal 10 (because "stable" instead of "experimental"). Which means fewer things to worry about for them when they do make the switch to 10.

So IMHO: no technical benefit, fair amount of psychological/ecosystem benefit ⇒ nice-to-have.

bbrala’s picture

The benifits are pretty clear to do so. Although they are quite minimal i think. People who want to prepare would do so anyhow.

What i don't like about it is the fact this goes contrary to policy. This normally ends up generating a lot of discusssion and back and forths. In a time where a lot of the people who would discuss this are REALLY needed to make sure we get Drupal 10 beta ready. Not sure this is something i'd propose, just for that reason.

But the genie is out of the box already, so eh. I wouldn't mind, but i don't think there is really much benifit in doing so.

eric_a’s picture

Maybe this was discussed already and missed by me, but if ckeditor 5 is going to be marked stable in 9.4.6, mustn't the 9.4.x ckeditor5 code be made up-to-date as well? Some recent issues were committed to 9.5.x but not to 9.4.x.

eric_a’s picture

but given it's unstable in 9.4 maybe we can just backport it like we have other changes.

I think it would be great to have as much as possible of ckeditor5 available in 9.4, wether marked stable or not.

I had noticed two critical issues from the roadmap not being committed to 9.4.x:
#3294908: Configuration overlaps between Styles and other CKE5 plugins
#3268306: [GHS] Custom/unofficial HTML tags not retained: <drupal-media>, <drupal-entity>, <foobar>

Maybe there are more, critical or not critical.

The ckeditor5 module component shows more Closed(fixed) 9.5.x-dev issues. So it appears that ckeditor5 is not really up-to-date in 9.4.x. Is that the case or are these special issues?

wim leers’s picture

@Eric_A: you're absolutely right. git diff 9.4.x 9.5.x -- core/modules/ckeditor5 makes that very clear.

catch’s picture

Version: 9.4.x-dev » 9.5.x-dev
Status: Patch (to be ported) » Fixed
Issue tags: -Needs release manager review

Discussed this with @alexpott a bit. We've backported a lot of the diff between 9.5 and 9.4 which is great, however also we were only able to do that because ckeditor5 is still experimental in 9.4. If there's a minor-but-not-patch-safe fix that needs to go in within the next couple of months, it'll be easier to backport if ckeditor5 is still experimental - once we mark it stable everything gets a lot stricter.

So I think it's probably better to leave things as it is, so that we can keep backporting for the next few weeks, and then 9.5 will be released soon anyway.

Going to go ahead and mark fixed against 9.5.x

wim leers’s picture

👍 I had similar thoughts! 😊

Status: Fixed » Closed (fixed)

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