Problem/Motivation
In order to catch unintentional regressions such as enablePlaceholder() in CKEditor 5 39 (see #3377562-14: Update CKEditor 5 to 39.0.0) long ahead of time, let's have an issue that is forever chasing the nightly tag of CKEditor 5.
Automated CKEditor 5 nightly changelog: https://github.com/ckeditor/ckeditor5/issues/14724
To update the MR once you have it locally:
git checkout 3379104-cke5-nightly
git pull
cd core && yarn upgrade --pattern ckeditor5 && yarn build && yarn build:ckeditor5-types
cd .. && git add core/assets/vendor/ckeditor5/ && git commit -nam "$(date)"
git push --set-upstream drupal-3379104 HEAD
⚠️ Whenever the version of CKEditor 5 in the upstream branch (11.x) has changed, you need to remove all the "date" commits and revert back to Pin all CKEditor 5 packages to the `nightly` tag. commit, pull & rebase, and force push:
git checkout 3379104-cke5-nightly
git pull
git reset --hard $(git log 11.x..3379104-cke5-nightly --format=%h | tail -2 | head -1)
git fetch origin
git rebase origin/11.x --strategy-option theirs
# Now do the usual steps, but skip the checkout + pull, and do a force push:
cd core && yarn install && yarn upgrade --pattern ckeditor5 && yarn build && yarn build:ckeditor5-types
cd .. && git add core/assets/vendor/ckeditor5/ && git commit -nam "$(date)"
git push -f --set-upstream drupal-3379104 HEAD
Steps to reproduce
N/A
Proposed resolution
N/A
Remaining tasks
N/A
User interface changes
N/A
API changes
N/A
Data model changes
N/A
Release notes snippet
N/A
Issue fork drupal-3379104
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
Comment #3
wim leersDone, and provided instructions to update this MR 👍
Comment #4
wim leersAlright, that's a success! 😄 https://www.drupal.org/pift-ci-job/2732147 failed on the exact problem that was discovered when creating the MR for the latest CKEditor 5 upgrade (#3377562-14: Update CKEditor 5 to 39.0.0), this clearly would have surfaced it a long time ago 👍
I'll update this periodically. In my absence, anybody else can do the same using the commands in the issue summary 😊
Comment #5
wim leersLinking the automated CKEditor 5 nightly changelog: https://github.com/ckeditor/ckeditor5/issues/14724 🥳
Comment #6
wim leersRefined commands as I did the first update 👍
Comment #7
wim leersThat MR didn't apply anymore. The reason being: the upstream had changed from
38.1.0to39.0.0in the mean time.So updating the issue summary for how to deal with that.
Comment #8
wim leers#3380637: Update CKEditor 5 to 39.0.1 landed, redid the MR again 👍
Comment #9
wim leersTurns out
yarn installdoes not do anything anymore once you're already on a nightly 🙄Turns out we need
yarn upgrade --pattern ckeditor5… probably. Seems like nobody really knows how to make this package manager do what you want: just what you want and nothing more.Tweaked the issue summary once more…
Comment #10
wim leersWorked like a charm this time! 🚀
Comment #11
wim leersNow that #3393557: [upstream] Update CKEditor 5 to 40.0.0 is in, tests are green again, and I should get this going again.
Comment #12
catchI wonder if we could make a special purpose pipeline that runs on a weekly schedule and not alongside the other pipelines, that updates to ckeditor5 nightly and runs just the ckeditor5 tests. It could do a similar thing to what the new performance job that just landed does in terms of exclusive scheduling.
Comment #13
wim leers@catch I'd love to do that! As you can see in the issue summary, I've already scripted it anyway. I'll do that! 🤓 When I started this, core wasn't yet on GitLab CI and I knew far less about it. Should be easy now 😄
Comment #15
wim leersFirst step is made: https://git.drupalcode.org/project/drupal/-/merge_requests/5325/diffs?co... :)
Also:
yarnis weird.Comment #18
wim leersI got very excited there, but it's not quite working yet 😄
Getting closer though! 🤞
The
CKEditor Nightly + PHP 8.2 MySQL 8child pipeline is not yet copying the results of🌌 CKEditor Nightlyinto every job in that child pipeline. Without that, this won't work correctly.At a minimum, we'd need the
yarnnightly update results to be applied when runningFunctionalJavaScriptandNightwatchtests.Comment #19
catchTwo options I think:
1. If the variable from the schedule is set, then make the child jobs require the artifacts from the nightly job.
2. Don't try to run the full test suite and instead manually call phpunit with @group ckeditor5 from the nightly job itself after building.
Comment #20
wim leers#19.1: I don't think a conditional
needsis supported by GitLab CI? 🤔Comment #21
catch@Wim Leers no, but:
Yarn could be a variable that is conditionally assigned to either the standard job or the ckeditor5 upgrade job I would think.
Comment #22
wim leersAFAICT that's not supported per https://docs.gitlab.com/ee/ci/yaml/#needs.
https://stackoverflow.com/questions/70003527/gitlab-ci-does-not-support-... seems to confirm this.
Comment #23
wim leers🤔 Maybe the simpler solution then is to have conditional logic in the
📦️ Yarnjob, based on some top-level variable? That'd achieve the same as #21.Comment #24
catchOh that is unfortunate.
I think we would essentially have to make the yarn job responsible for all the ckeditor nightly logic, but that does seem feasible.
Comment #25
wim leersNo time to work on the GitLab CI job today. Doing the manual process takes only a few minutes, so did that.
40.1.0is shipping with Drupal 10.2 soon (thanks to #3400791: Update CKEditor 5 to 40.1.0), so about time to start testing again against the current nightly.Comment #29
wim leersThe current CKE5 nightly caused a regression. Looks like https://github.com/ckeditor/ckeditor5/commit/0647ba65cd09575937a9ba8e60b... caused this, because only
ImageUrlTestis failing: https://git.drupalcode.org/issue/drupal-3379104/-/pipelines/60411/test_r....Comment #30
wim leers#3406732: Update CKEditor 5 to 40.2.0 was merged, and shipped in Drupal 10.2.0 6 days ago. Time for testing the new nightly! https://git.drupalcode.org/project/drupal/-/merge_requests/4536/diffs?co...
Comment #31
wim leers~1 month after #30 (which passed tests 👍): testing against today's nightly: https://git.drupalcode.org/project/drupal/-/merge_requests/4536/diffs?co...
Comment #32
wim leersFailed on spell check due to the
11.xbranch in this issue fork being so far behind. See #3401988: Spell-checking job fails with "Argument list too long" when too many files are changed. Manually pushed a version of11.xthat matches the starting point of the current MR.Comment #34
wim leersPushed newest nightly now that #3401988: Spell-checking job fails with "Argument list too long" when too many files are changed is fixed 👍
Comment #35
wim leersI got it wrong — I needed to rebase on top of the latest
11.x. Done now 👍Comment #36
wim leersThat's failing with
😬
Comment #37
wim leersI fixed #36 in #3424644: Update CKEditor 5 to 41.2.0. That just landed in core! 😄
Time to start chasing the nightly again. Just pushed that 👍
New releases expected in: April and May, June maybe.
Comment #38
wim leersThe sole test failure seems unrelated and possibly a recent core regression: