Problem/Motivation
#3222947: Decide whether to move Quick Edit to contrib Is leaning towards "yes, let's remove it."
This is the issue to remove the Quick Edit Module in 10.0.x.
The issue for deprecating the Quick Edit Module in 9.5.x can be found here: #3270434: Mark Quick Edit deprecated
Steps to reproduce
n/a
Proposed resolution
Try to remove Quick Edit and see what happens.
Fix any problems that may rear ugly heads.
Remaining tasks
Currently postponed on
Related work.
- #3266476: Ensure that quickedit does not get special core treatment
- #3264949: Move Quick Edit help topics to contrib Quick Edit module
- Manual testing has been done in: #3303780: Manually test QuickEdit module removal
Refer to the tracking issue for removing Quick Edit #3274155: [Meta] Tasks to remove Quick Edit from core and move to contrib
Release notes snippet
Quick Edit has been removed from core. You should add a dependency on the contributed Quick Edit module if you want to keep using this functionality. For more information, see the recommendations for handling deprecated core modules and themes.
| Comment | File | Size | Author |
|---|
Issue fork drupal-3227033
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:
- 3227033-d10-remove-quick-edit
changes, plain diff MR !2389
- 3227033-quickedit
changes, plain diff MR !1020
Comments
Comment #4
xjm🔥
Comment #5
xjmHere's a list of QuickEdit integration tests in the namespaces of other modules:
Some of them can be removed wholesale; others might needs specific methods removed.
Comment #6
xjmHere are the remaining references in tests after blindly removing those that are explicitly labeled as QuickEdit integration tests:
Comment #7
xjmNon-test references remaining:
Comment #8
xjmOne comment from @larowlan on the other issue:
It looks like we have a similar thing for themes with the
quickedit_stylesheetskey.Comment #9
dwwHoly smokes, that was fast! 😉 I just came here to start and lo, it's already totally in progress. Thanks, @xjm!
Comment #10
xjmI am strongly motivated. 🔥
Comment #11
andypostGreat job! Looks like #9 could left in core namespace to allow contrib to extend this annotations (panels for example or ctools)
Edit could use @timplunkett review
Comment #12
xjmUpdating the remaining tasks.
Comment #13
andypostMaybe better use event to find "annotation extensions" (subscribers) instead of hooks
Comment #14
dwwI'll do an initial pass on some of the tests listed in #6 while I juggle some day job stuff. Let's see if I get very far... ;)
Comment #15
dwwWell, poo. ;) See commit message for this:
https://git.drupalcode.org/project/drupal/-/merge_requests/1020/diffs?co...
NodeDisplayConfigurableTest is trying to do this in assertNodeHtml():
$assert->elementTextContains('css', $created_selector, \Drupal::service('date.formatter')->format($node->getCreatedTime()));So we need a selector to find exactly where the timestamp is appearing. But without quickedit enabled, the markup for this node in stable and stable9 looks something like this:
I'm not sure how we're supposed to find this needle:
<span>Fri, 08/06/2021 - 11:09</span>in that haystack, without any classes or anything to distinguish it from every other span.Also, MediaEmbedFilterDisabledIntegrationsTest is now a kernel test with a data provider that provides a single case. Not sure if we should refactor that, or leave the provider plumbing in place.
Comment #16
dwwcore/modules/system/tests/src/Functional/UpdateSystem/UpdatePathTestBaseFilledTest.php is a mess to change, since the filled DB dump from 9.0.0 has quickedit enabled. We need a more careful removal with a stub module for deprecation, etc. As it is, the test immediately fails like so:
Comment #17
dwwA bunch of the test fails at https://www.drupal.org/pift-ci-job/2141379 are the same problem as #16. If we completely remove quickedit like this, none of our update tests can work, since they all explode on the requirements check, there is no 'Continue' button at update.php, and doom ensues... ;)
Not sure if it's worth doing the stub deprecation shell dance in this issue, or what. I await @xjm's feedback before doing much else with this.
Comment #18
andypost@dww I'm affecting this test few days ago in #3090187: Mechanism to disable preprocessing of base fields in comment entity type so they can be configured via the field UI
Comment #20
longwave@dww I think we only need a stub quickedit.info.yml marked "obsolete" for some of the tests to pass, so I added that for now.
Comment #21
xjmRe: #20, leaving an obsolete stub in that uninstalls itself is the best practice anyway from moving anything from core; I just wanted to see what would break if the entire module were actually not present to surface other things that will need a fix. (We will need to make updated upgrade path tests again in 10.0.x development for multiple modules and deprecations, not just this one.)
Comment #22
xjmFor things like #15, those tests should not be coupled to QuickEdit in the first place. We will need to rewrite them in 9.3.x (and spin off separate issues for them eventually).
Comment #23
dwwRe: #22: Absolutely agree. Only documenting the pain points as I found them. ;) Using quickedit selectors like this was always a hack in stable tests. But we've got to pay off that technical debt now, somehow. Should we spin off a separate issue for that right now and get started?
Comment #24
xjm@dww, Yep, good idea I think.
Setting a better issue status.
Comment #25
dww#3227161: Stop using Quick Edit data attributes as selectors in tests that are not testing Quick Edit
Comment #26
dwwComment #27
xjmPosted #3228634: Move tests for integrations between QuickEdit and other modules into QuickEdit so that it can more easily be moved into contrib.
Comment #28
xjmComment #29
xjmComment #30
xjmPosted #3230928: Remove unused LayoutBuilderTest::testRemovingAllSections()' Quick Edit dependency for that remaining LB test failure.
Comment #31
xjmOops, my force-push also ate the commits to remove QuickEdit from the test formatter annotation and test image formatter. Those two things should probably get their own issue as well (one issue for both seems fine).
Comment #33
spokjeLooking at https://www.drupal.org/pift-ci-job/2165728, me thinks the introduction of a required
lifecycle_linkfor deprecated and obsolete lifecycle states in #3225812: Add lifecycle_link key to info.yml files breaks (almost) every test know to man- and TestBot-kind. ;)Since this is an
[Investigation]issue, I think it's OK to add a not yet existing URL (https://www.drupal.org/about/core/policies/core-change-policies/deprecated-and-obsolete-modules-and-themes#s-quickedit)?Comment #34
spokjeOpened #3231071: Remove QuickEdit from the test formatter annotation and test image formatter. for that.
Comment #35
spokjeBesides:
lifecycle_linkforcore/modules/quickedit/quickedit.info.ymlI think we're done here for now?
Comment #37
wim leersWith #3227161: Stop using Quick Edit data attributes as selectors in tests that are not testing Quick Edit and #3238626: [Follow-up] Move tests for integrations between QuickEdit and other modules into QuickEdit done, time to rebase this again… and hopefully we'll see 0 test failures!
Comment #38
dwwTo be clear, the actual plan here would be to mark quickedit deprecated in 9.3.0 and actually remove it in D10, right?
Now that our investigation is complete (🎉) should we turn this into the D10 issue to do the removal that the MR now implements?
Comment #39
dwwp.s. Should we open an unpublished CR about this now so the lifecycle_link has a real nid to point to?
Comment #41
spokjeWith the addition of CKEditor5 in #3231364: Add CKEditor 5 module to Drupal core a new QuickEdit integrationtest was added:
\Drupal\Tests\ckeditor5\FunctionalJavascript\QuickEditIntegrationTest.This has to be moved into QuickEdit's test namespace to facilitate the core removal along the lines of #3228634: Move tests for integrations between QuickEdit and other modules into QuickEdit so that it can more easily be moved into contrib where the other QuickEdit related test classes were moved.
Opened #3252214: Move tests for integrations between QuickEdit and CKEditor5 into QuickEdit so that it can more easily be moved into contrib for that.
Comment #42
spokjePostponing on #3252214: Move tests for integrations between QuickEdit and CKEditor5 into QuickEdit so that it can more easily be moved into contrib
Comment #43
spokjeComment #44
spokjeUnpostponing since #3252214: Move tests for integrations between QuickEdit and CKEditor5 into QuickEdit so that it can more easily be moved into contrib was committed.
Comment #45
spokjeThus spoketh @dww in #39
Looking at the already obsolete Core modules simpletest and entity_reference, the lifecycle_link points to an anchor on https://www.drupal.org/about/core/policies/core-change-policies/deprecated-and-obsolete-modules-and-themes.
I _think_ by the time we launch Drupal 10, an entry should be made there.
Until then I think linking to a CR is indeed the way to go. I've started an unpublished one here: https://www.drupal.org/node/3252839
Maybe a follow-up is needed to change the lifecycle_link from pointing to the CR to https://www.drupal.org/about/core/policies/core-change-policies/deprecat... should be created?
Also a follow-up to move QuickEdit into a Contrib Module should be created, me thinks.
For both follow-ups I'm unsure if they should be children of this issue or of the parent issue #3228986: [Meta] Tasks to deprecate Quick Edit.
Any advice on that would be most welcome.
Comment #46
spokje[Removed double post]
Comment #47
spokjeSince we missed the
9.3-boat, here's a patch against9.4.xComment #48
spokjeComment #49
spokjeReroll of patch #47
Comment #50
catchI think we can use this issue for the actual removal of quickedit from core now.
However seems like we probably need a 9.4.x to mark it deprecated still? Or is there one around somewhere.
Comment #51
spokjeSense = made.
So here's a patch for the removal and making the module obsolete in
10.0.xComment #52
spokjeAnd a deprecation patch for
9.4.x.Both CRs could do with some people with Big Brains looking at it.
Also we need to have the Contributed Module quickedit in place so we can link to it in both CRs, I presume?
Comment #53
catchYes I think the order is:
1. Contrib module quickedit
2. Deprecation in 9
3. Removal in 10
Steps 2 and 3 can be combined if both bits are ready.
Comment #55
spokjeSo, for the ignorant amongst us *raises hand* how does one create a contrib module?
- I imagine naming it "quickedit" would clash with the 9.4.x release which still has a "quickedit" module in core (although deprecated by then)?
- If one creates a Contrib Module, I suppose you're immediately the maintainer, which in this case should be @gaurav.kapoor (See #3228986-4: [Meta] Tasks to deprecate Quick Edit?
Comment #56
spokjePatch #52 reveals we need at least to solve one more issue: Having a deprecated module with non-deprecated dependency in core leads to a test failure in
InstallUninstallTest.Created issue #3259850: Having a deprecated module with non deprecated dependency leads to test failure in InstallUninstallTest to deal with this.
Comment #57
spokjePostponing on #3259850: Having a deprecated module with non deprecated dependency leads to test failure in InstallUninstallTest .
Comment #58
spokjePu tth espac ei nth ewron gplac e :/
Comment #59
spokjeComment #60
catch@Spokje
So this is actually fine given the module will be identical, with a slight wrinkle from #3188544: [policy discussion] Address Composer namespacing issues when extensions move between core and contrib but that is resolvable.
If you have a Drupal 9.4 site, you'll get deprecation warnings, and if you go and download the contrib project, then it'll override your core module and they'll go away (because modules in modules/* or sites/* override those in core/*
If you have a Drupal 10 site, your only option is the contrib module.
Comment #61
catchComment #62
daffie commentedI think that we should add a test that when the module gets installed that the module is deprecated.
Comment #63
spokjeBesides the point which @daffie makes above, there's Yet Another Issue with
InstallUninstallTest: #3259888: InstallUninstallTest fails on enabling both deprecated and experimental modules at the same timeComment #64
spokjeComment #65
catchWe have generic tests for the lifecycle key, I don't think we need one for each individual module that we deprecate.
Comment #66
spokjeLooks like an attempt at this is being made at #3257127: Trigger a deprecation message when a deprecated module or theme is enabled.
Removing "needs tests" tag since:
1) Test is being made in #3257127: Trigger a deprecation message when a deprecated module or theme is enabled
2) Test seemed to be unneeded according to @catch
Comment #67
spokjeComment #68
spokjePostponing on #3259888: InstallUninstallTest fails on enabling both deprecated and experimental modules at the same time
Comment #69
spokje#3259888: InstallUninstallTest fails on enabling both deprecated and experimental modules at the same time was committed, so unpostponing.
Starting a retest on the deprecation D9.4 patch
Comment #70
daffie commented#3259888: InstallUninstallTest fails on enabling both deprecated and experimental modules at the same time has landed.
Comment #71
daffie commentedLooks good to me.
Comment #72
spokjeSo now we have a TestBot-green deprecating patch for 9.4 and a TestBot-green removal/obsolete patch for D10.
According to catch in #53:
we're still missing step 1.: A contib quickedit module.
Which leads us (or at least me) back to point #2 in #55:
Comment #73
dwwRe: #72 / #55: Drat. At #3228986-18: [Meta] Tasks to deprecate Quick Edit, @gaurav.kapoor declined.
I have a lot of contrib modules I (don't) maintain. 😉 I'd be willing to open the project for quickedit, commit the code, mark it "minimally maintained", "seeking co-maintainer", etc, and do the bare minimum to keep it alive for a little while. But I don't use it myself, and have very little incentive to do anything with it. So if anyone else actually wants to maintain this feature, I definitely wouldn't want to get in their way. But if this is the last step blocking this from leaving core, I'm willing to do a little work to keep this moving.
Comment #74
spokjedww for president!
Besides the above, I think that realistically, no other new maintainer will stand up any time soon. I also don't expect a lot of issues being created on the new Contrib incarnation of QuickEdit.
Searching for "quickedit" in the issue queue doesn't reveal a lot of activity on the actual module, so it might fit in with @dww's "minimally maintained" approach.
To keep this issue moving forward I would love to see @dww's "shot-in-own-foot" #73 come into fruition and a Contrib version of quickedit to emerge.
Comment #75
dwwHah, thanks. 😉 Okay, no one else is stepping forward, so I'm going to subtree split core/modules/quickedit and push that into a new
1.0.xbranch in quickedit (which already exists, and Gabor made me a co-maintainer with Git access). Once I cut a 1.0.0-rc1 or something, I'll re-RTBC here with a link. Stay tuned...Comment #76
dwwhttps://git.drupalcode.org/project/quickedit/tree/1.0.x
https://www.drupal.org/project/quickedit/releases/1.0.0-rc1
Any help welcome at #3260995: Split the core 9.4.x quickedit history into a new 1.0.x branch and cut a 1.0.0 release to get that from rc1 to 1.0.0. Thanks!
Updated the CR to point to the real contrib project.
I believe this can now proceed. Back to RTBC... 🤞
Comment #77
spokjeThanks @dww!
So I _think_ we're all good for deprecation now.
However there's one thing missing IMHO: We need to transfer all QuickEdit issue in the Core queue to the QuickEdit Contrib queue.
Is that something that deserves it's own issue? (I have no idea how this can be done and who to ping on this).
Comment #78
lauriiiI think we could just transfer issues from this list manually. There's just one page of issues so it seems easier to move them manually compared to trying to figure out who can do it automatically.
Comment #79
spokjeThank @lauriii, moved those in your search query and (weirdly) found (and moved) about 30 more issue on component ''quickedit" by just searching for quickedit on core.
All are now transferred to https://www.drupal.org/project/issues/quickedit?categories=All
@dww: Since I think you're only (minimally) supporting the D9 version (1.x) you might want to close all 7.x issues and update the Module page which still has some D7 information.
Comment #80
catchThe 10.0.x patch should do a complete removal rather than marking obsolete. We haven't done many of these recently, so I'm not sure we have a clear precedent, but reasoning below:
The obsolete status is for modules like simpletest or entity_reference where it is either a development dependency we want to ensure is uninstalled, or the module itself has been completely gutted, and the only course of action is to uninstall before we remove it. In this case we don't need to give site admins a choice, the module is genuinely obsolete and just needs to be removed cleanly.
For non-development modules where we're offering a contrib version, we don't want to uninstall the module on sites' behalf, they need to take an active decision to install the contrib version or uninstall themselves. If someone updates to 10.0.x without doing that, then the big error that a module is missing from the filesystem is correct.
Comment #81
catchAlso looks like the 10.0.x patch needs a re-roll too.
Comment #82
spokjeNew D10 removal patch
Comment #83
catchIf we didn't have the quickedit module in contrib, we'd need a core patch to move them to quickedit prior to removal. Now that it's there, I opened #3261096: Include quickedit plugins from editor and image modules, but that'll need to block this issue so that we're not knowingly introducing a regression.
(Also, well done phpstan / I coulda gotten away with it if it weren't for that meddling phpstan).
Comment #84
spokje#3261096: Include quickedit plugins from editor and image modules is now PP-2, unsure if this would mean this is now PP-3?
Comment #85
spokjeTo quote myself:
Not that it matters, because we have (at least) a PP+1 here.
The attached rerolled D10 removal patch will show that it fails on the fixture
core/modules/system/tests/fixtures/update/drupal-9.0.0.filled.standard.php.gzhaving quickedit installed.I think we need a new
drupal-10.0.0.filled.standard.php.gzfixture, without quickedit.Whilst we're at it, it probably should already have all D9.x updates sucessfully ran, except for the installation a the appropriate DB module.
Comment #86
spokjeComment #87
catchThat might mean we need to go ahead with #2942096: [policy, no patch] Remove old update hooks prior to each major version (Drupal 10 and later) first.
Comment #88
spokjeWell, as a bare minimum this issue for the removing D10.x patch needs a fixture that has no quickedit installed.
Since it's about D10 I think we indeed need to postpone it on the issue that @catch mentioned above (#2942096: [policy, no patch] Remove old update hooks prior to each major version (Drupal 10 and later)), since that fixture would be a base for the one needed here.
Maybe in fact more a child-issue that actually commits such a fixture into the
10.0.x-devbranch.Comment #89
spokje#3261486: Remove core updates added prior to 9.3.0 and adjust test coverage seems to be just that issue.
Comment #90
spokje#3261486: Remove core updates added prior to 9.3.0 and adjust test coverage was just committed, now just postponed on #3261096: Include quickedit plugins from editor and image modules
Comment #91
spokjeReroll of the 10.0.x removal patch to see where we stand now that #3261486: Remove core updates added prior to 9.3.0 and adjust test coverage is in.
Comment #92
spokjeUpdated the D10.0 removal patch with a
drupal-9.3.0.filled.standard.php.gzfixture without the quickedit module being installed.Interdiff doesn't contain the changes in that fixture, because it's gzipped and would be non-human-readable.
Comment #93
spokjeAlso needed to create a
drupal-9.3.0.bare.standard.php.gzfixture without the quickedit module being installed.No interdiff, because only that .gz file changed and would be non-human-readable.
Comment #94
mradcliffe#3261096: Include quickedit plugins from editor and image modules is resolved so this should be ready again.
Comment #95
mradcliffeWait, sorry, I didn't see that #3260995: Split the core 9.4.x quickedit history into a new 1.0.x branch and cut a 1.0.0 release was a child issue of this, and it's noted in that issue summary as blocking.
Comment #96
dwwhttps://www.drupal.org/project/quickedit/releases/1.0.0 is tagged and out. 🎉 I believe that was the only remaining blocker to this moving forward.
Comment #97
dwwWeird, didn't mean to remove that as related. Restoring.
Comment #98
spokjeThanks @dww for cutting the release and @mradcliffe for unpostponing.
Comment #99
spokjeIn #3263618-11: Deprecate HAL module and #3263618-10: Deprecate HAL module it was decided to link to https://www.drupal.org/node/3223395 in the
lifecycle_linkof the deprecated extension.I've added a new section for quickedit to that page.
Attached patch should comply with the above.
Comment #100
spokjeReroll of patch in #93
Comment #101
spokjeComment #102
daffie commentedBoth the patch for D9.4 and D10 look good to me.
The patch for D9.4 deprecates the module and add a deprecation link.
The patch for D10 removes the module.
For me it is RTBC.
Comment #104
spokjeComment #105
catchAll of the 9.4 quickedit tests need to be tagged with @legacy after #3257127: Trigger a deprecation message when a deprecated module or theme is enabled.
Help topics and REST are both enabling all modules, need to filter deprecated ones out, opened #3264435: Help topics and rest don't filter out deprecated modules when testing.
Comment #106
spokjeThis patch should take care of the 16 errors that are caused by running
@group quickedittests, the remaining 2 failures should be fixed when #3264435: Help topics and rest don't filter out deprecated modules when testing lands.Comment #107
catchReady to go again once the other issue has landed.
Comment #108
spokjeAs expected (and predicted by the almighty @catch) 2 failures remain, soon to be solved when #3264435: Help topics and rest don't filter out deprecated modules when testing lands.
Comment #109
spokje#3264435: Help topics and rest don't filter out deprecated modules when testing was just committed, starting D9.4 deprecation patch retest and expecting it to come back green
Comment #110
spokjeReroll of D10 removal patch
Comment #111
spokjeComment #112
spokjeAaaaand back to Postponed, this time on #3264061: Remove deprecated functions from image module
waves at guy pushing boulder uphill whilst running after his own boulder rolling downhill
Hi Sisyphus!
Comment #113
spokjeComment #114
catchThat should hopefully have been fixed by #3255887: MediaThumbnailFormatter => Calling ImageFormatter::__construct() without the $file_url_generator argument is deprecated in drupal:9.3.0. I've sent the patch here for retesting now that's in. Tentatively unpostponing again.
Comment #115
spokjeSees rolling stone suddenly changing direction from downwards to upwards
Well, that was unexpected...
Thanks @catch and @Big Brains behind fixing #3255887: MediaThumbnailFormatter => Calling ImageFormatter::__construct() without the $file_url_generator argument is deprecated in drupal:9.3.0.
Chases upwards rolling stone and passes guy running after boulder going downwards
Hi Sisyphus!
Comment #116
spokjeThus spoketh @xjm in [#2966859-32]
Comment #117
mstrelan commentedWe still need to remove
\Drupal\layout_builder\QuickEditIntegrationand refactor it so that quickedit contrib provides the integration with layout builder.Comment #118
spokjeOuch, so
\Drupal\layout_builder\QuickEditIntegrationhas:I'm quite happy for Bigger Brains to step in on this one, I actually think I've never user quickedit nor layout_builder, so even visual testing to see if before and after matches would not work.
Comment #119
mstrelan commentedThe class is marked as
@internalso I guess it doesn't need to be deprecated in 9.4.I'm guessing that's what is covered by
\Drupal\Tests\quickedit\Functional\LayoutBuilderQuickEditTestwhich is now in contrib.I believe the class and those hooks should be relatively easy to move to quickedit, however there is also
\Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay::getQuickEditSectionComponentwhich is called from::getComponentin the same class. Quickedit will need to implement the relevant hook to provide this behaviour.Comment #120
spokjeRight, whilst walking away from the boulder at the bottom of the hill to look for my old buddy Sisyphus to check if he has worked with layout_builder and/or quickedit lately, I realized that no matter what or who's going to do this, (Yet Another) new issue will probably come in handy. The patch or plain diff from the MR there could probably be applied on the Contrib quickedit.
So: Once more unto the breach, dear friends, once more...where the breach this time is located at #3264633: Remove \Drupal\layout_builder\QuickEditIntegration and refactor it so that quickedit contrib provides the integration with layout builder
And of course: Nice catch @mstrelan.
Comment #121
spokjePostponing on #3264633: Remove \Drupal\layout_builder\QuickEditIntegration and refactor it so that quickedit contrib provides the integration with layout builder
Comment #122
spokjeComment #123
spokjeComment #124
spokjeComment #125
dwwAlso blocked on #3264945: Move quickedit help topics to quickedit module. $PP++;
Comment #126
mstrelan commented\Drupal\image\Controller\QuickEditImageController is another integration in core that would need to move.
Comment #127
dwwRe #126: Thanks, another great catch! I opened #3265140: Move QuickEditImageController from image to quickedit as another child issue. $PP++; 😉
Comment #128
spokjeComment #129
mglamanThe PHPStan failure is due to Symfony 6:
https://github.com/symfony/symfony/search?q=getMasterRequest
Comment #130
spokjeSmart thing were said (certainly not by me) in this Slack thread about the PHPStan failure on the D10 patch: https://drupal.slack.com/archives/C014CT1CN1M/p1645198628262459
Comment #131
spokjeThis issue is moving backwards faster than a moonwalking MJ...
$PP++on #3265121: Remove Symfony 4 RequestStack BC shim in 11.0.x which breaks all tests whencore/phpstan-baseline.neonis changed in a patch/MR.Comment #132
spokjeComment #133
spokjeMJ doing a side-step in the remove-quickedit-moonwalk: Still PP-4, but #3265121: Remove Symfony 4 RequestStack BC shim in 11.0.x is being swapped for #3265356: Deprecate Symfony 4 RequestStack BC shim for removal in D11.
Comment #134
spokjeOne less PP after #3265356: Deprecate Symfony 4 RequestStack BC shim for removal in D11 landed.
Comment #135
spokjeComment #136
catchComment #137
spokje#3264945: Move quickedit help topics to quickedit module was committed.
Comment #138
dwwYay, progress! Thanks.
Not a $PP++ moment, but #3265492: Fix inaccuracies in quickedit help topic (after the split from settings_tray) would probably be good to fix before we all completely walk away from QE forever. 😉
Comment #139
dwwStarted a section on "Related work" (not blockers for this, but stuff we gotta do before we're done). Added #3266476: Ensure that quickedit does not get special core treatment there.
Comment #140
wim leers@Spokje: thank you for your hilarious sisyphean commentary along the way — been there, done that, I wasn't as funny :P
Comment #141
mstrelan commentedAdded another blocker: #3267258: Remove Quick Edit support from editor.module
Comment #142
dwwAgreed on @Spokje's humor!
@mstrelan Good find, thanks! Adding to the list of blockers in the summary.
Comment #143
quietone commentedI move #3267258: Remove Quick Edit support from editor.module to a child of the Meta for tracking the steps to remove Quickedit in one place, #3228986: [Meta] Tasks to deprecate Quick Edit.
Comment #144
dwwPer @xjm @ #3228986-27: [Meta] Tasks to deprecate Quick Edit, I split the 9.4.x deprecation work to #3270434: Mark Quick Edit deprecated. I uploaded 3227033-9.4.x-deprecated-106.patch there and credited @Spokje, so I'm hiding it from here.
Thanks,
-Derek
Comment #145
ressaThanks for working on removing QuickEdit, I am not going to miss it. I never used it, but it often gives false positives in the tests, such as these two
WebDriver\Exception\UnknownError: element click intercepted: Element ... is not clickable at pointrecently:Comment #146
quietone commentedTrying to get this to follow the policy that we've been developing. The parent issue for the removal of a module is to be a Meta that tracks all the removal work. For quickedit that is #3274155: [Meta] Tasks to remove Quick Edit from core and move to contrib, changing parent.
Comment #147
catch#3265140: Move QuickEditImageController from image to quickedit is in.
We still have #3267258: Remove Quick Edit support from editor.module and #3264633: Remove \Drupal\layout_builder\QuickEditIntegration and refactor it so that quickedit contrib provides the integration with layout builder.
Comment #148
spokjeComment #149
wim leersComment #150
spokjeComment #151
mstrelan commentedThis is unblocked now. Needs work / needs IS update because it's not immediately clear what is still outstanding here.
Comment #152
dwwFirst we have to deprecate it in 9.5.x. See #3270434: Mark Quick Edit deprecated. But that's now the only remaining blocker! 🎉
Comment #153
dwwsorry for the noise, I missed
Comment #154
spokjeAll blockers (see #147) are in.
As I start pushing the boulder uphill yet again, a guy chasing a boulder thundering downhill shouts at me: "Famous Last Words!"
Comment #155
spokjeComment #156
spokjeComment #157
spokjeComment #159
dwwYay, thanks for getting this one ready! But we still have to mark it deprecated before we can remove it. ;)
But let’s see what the testbot says and treat this as if it needs review. But when it’s about to be RTBC, we PP-1 this one or something?
Comment #160
mstrelan commentedPlenty of references outside of quickedit.module that we can remove in 10.0.x
Comment #161
spokje> Yay, thanks for getting this one ready! But we still have to mark it deprecated before we can remove it. ;)
Yes, but both issues have to be ready at about the same time. Starting with this one gives (at least me) a better overview of what gets in the way of both issues being RTBC. Deleting stuff always shows errors earlier IMHO.
And to prove my case, we have a new postponing issue: #3291018: Move \Drupal\Tests\ckeditor5\Functional\CKEditor5QuickEditLibraryTest to the quickedit namespace/directory
Comment #162
spokjeComment #163
spokjeComment #164
wim leersAnd one more postponing issue discovered while reviewing the one @Spokje just opened: #3291047: Move Quick Edit-specific styling of CKEditor 4 & 5 into Quick Edit module.
Comment #165
spokjeErm...thanks?
There's really _nothing_ easy and/or straightforward on the deprecation/removal of this specific module.
Comment #166
catchI think it proves that it's a good decision to remove it at least, so much supporting code and test coverage scattered around core for something that's an admin feature.
Comment #167
wim leers💯
I don't disagree with what you say here, but … I don't agree this is an "admin" feature. It's a content creator/editor feature. That's why it's scattered all over: because it blurs the lines between "back end" and "front end". That blurring requires code and integration tests.
Don't get me wrong: I'm happy to see this removed! The UX was never good enough. (I can say that, because I'm the person who probably worked on this the most. 😅)
Comment #168
spokjeComment #169
catchI kind of see these as a subset of admin, although yes it's more of a venn diagram depending on the site.
Comment #170
spokjeComment #171
spokjeComment #172
catchLast, last, last last, last, last blockers are in (again, again, again again).
Comment #173
wim leers🥳 Hopefully the very last round on this one, @Spokje! 🤞
Comment #174
spokjeThank @catch and @Win Leers.
I'll circle back to this one (and the deprecation one) tomorrow.
Off for some beers in the "Rolling Stone" bar with me ol' pal Sisyphus tonight.
Comment #175
spokjeAdded release note snippet.
Comment #176
spokjeFIxtures were changes, so adding tests for different DBs.
Comment #177
spokjeComment #178
spokjeBig MR, let's try to break it down:
- Removal of directory
core/modules/quickedit.- Changes in
composer.lockandcore/composer.jsonto remove the module.- Rebuild
core/misc/cspell/dictionary.txtsince we deleted a lot of files.- Uninstalled Quick Edit from
core/modules/system/tests/fixtures/update/drupal-9.3.0.bare.standard.php.gz- Uninstalled Quick Edit from
core/modules/system/tests/fixtures/update/drupal-9.3.0.filled.standard.php.gz- Removed Quick Edit from
$expected_enabled_modulesincore/modules/system/tests/src/Functional/UpdateSystem/UpdatePathTestBaseFilledTest.php- Removed (P)CSS files from themes that will stay in core (Claro, Olivero, Starterkit, Umami), leave them in the others (Bartik, Classy, Seven, Stable, Stark). Discussed this briefly with @catch, we're doing the same thing here as we decided to do with templates. (See https://www.drupal.org/project/drupal/issues/3264120#comment-14456294)
- Removed Quick Edit from
core/MAINTAINERS.txt- Removed annotations in the plugins
\Drupal\Core\Field\Plugin\Field\FieldFormatter\BasicStringFormatter,\Drupal\Core\Field\Plugin\Field\FieldFormatter\StringFormatter,\Drupal\comment\Plugin\Field\FieldFormatter\CommentDefaultFormatter,\Drupal\comment\Plugin\Field\FieldFormatter\CommentPermalinkFormatter,\Drupal\image\Plugin\Field\FieldFormatter\ImageFormatter,\Drupal\responsive_image\Plugin\Field\FieldFormatter\ResponsiveImageFormatter,\Drupal\text\Plugin\Field\FieldFormatter\TextSummaryOrTrimmedFormatterand\Drupal\text\Plugin\Field\FieldFormatter\TextTrimmedFormatter.Comment #179
spokjeSo by now the remaining references to Quick Edit are:
- CSS and JS in
ckeditor5. I have no clue if that should be removed?- Help topic for Settings Tray. This is OK, the functionality "Quick Edit" is a contained in the Settings Tray module and is different from the Quick Edit module.
- CSS for themes Seven, Stable, Stable9. This is OK, these are all themes that will be deprecated.
- Annotations in the plugins\Drupal\Core\Field\Plugin\Field\FieldFormatter\BasicStringFormatter,\Drupal\Core\Field\Plugin\Field\FieldFormatter\StringFormatter,\Drupal\comment\Plugin\Field\FieldFormatter\CommentDefaultFormatter,\Drupal\comment\Plugin\Field\FieldFormatter\CommentPermalinkFormatter,\Drupal\image\Plugin\Field\FieldFormatter\ImageFormatter,\Drupal\responsive_image\Plugin\Field\FieldFormatter\ResponsiveImageFormatter,\Drupal\text\Plugin\Field\FieldFormatter\TextSummaryOrTrimmedFormatterand\Drupal\text\Plugin\Field\FieldFormatter\TextTrimmedFormatter. I know Core doesn't support Contrib, but if we remove these I think we'll basically cripple Contrib Quick Edit massively.Comment #180
wim leersI thought we had just moved all CSS and JS referencing Quick Edit out of the CKEditor 5 module in the issue I started yesterday? (#3291047: Move Quick Edit-specific styling of CKEditor 4 & 5 into Quick Edit module) :O
Regarding for matters having Quick Edit-related annotations: those can all be moved to the contrib module, the contrib module can then just *alter* those annotations 😊
Comment #181
spokjeThanks @Wim Leers:
Me too, but still:
#3292626: Remove core/modules/ckeditor5/css/quickedit.css
https://git.drupalcode.org/project/drupal/-/blob/10.0.x/core/modules/cke...https://git.drupalcode.org/project/drupal/-/blob/10.0.x/core/modules/cke...
So you're saying: Nuke them in this issue?
Comment #182
spokjeReread and decided it is indeed an OK for removal of the annotations.
Comment #183
spokjeComment #184
spokjePostponed on #3266476: Ensure that quickedit does not get special core treatment per Slack discussion here: https://drupal.slack.com/archives/C014CT1CN1M/p1655750184381089
Also needs manual testing when that blocker lands (see also Slack discussion)
Comment #185
spokjeComment #186
catchAccording to @Mixologic #3266476: Ensure that quickedit does not get special core treatment is actually done for quickedit, just the issue was not updated.
So.. I tested the upgrade path from 9.5.x to 10.0.x
First, in 9.5.x, I tried to install quickedit via composer, this does not work:
This is because
core/composer.jsonin 9.5.x still specifies quickedit as replaced. We might need to just tell people to wait until updating to 10.0.x to install the contrib module. #3188544: [policy discussion] Address Composer namespacing issues when extensions move between core and contrib will eventually resolve this in all directions.Then I checkout out 10.0.x and ran composer update.
Because this issue hasn't landed yet, you also can't composer require drupal/quickedit in 10.0.x either for the same package replacement issue, so I applied this MR to arrive in the proper 10.0.x state with no quickedit references in core.
After that composer require drupal/quickedit runs fine:
I hadn't run update.php yet (I forgot, but also this is the correct order to do things anyway). Got a whitescreen hitting the front page, update.php loads fine, ran the one olivero update that was pending, no weird updates to run for quickedit or anything.
I did find #3291700: new subtree split of core Quick Edit into contrib (v2), which looks to me like it might just be quickedit needing a new subtree split update from core since some commits are missing given the contrib project was created so long ago before we knew there'd be another 15 pending issues blocking its removal.
Leaving PP-1 on the update to the contrib module.
Comment #187
spokjeI think removing
[PP-1]from the issue title might make things a bit more clear.Comment #188
spokjeAh, missed that, reverting title and putting this back on postponed, since it is...erm...postponed on #3291700: new subtree split of core Quick Edit into contrib (v2). Adding that to the IS as well.
On a more cheery note:
Discussed this briefly with catch on Slack and as a (valid?) workaround we propose:
composer require drupal/quickeditfor10.0.xcomposer require drupal/quickedit-quickeditfor9.4.x/9.5.xComment #189
spokjeComment #190
spokjeComment #191
spokje#3292626: Remove core/modules/ckeditor5/css/quickedit.css is just sloppy, but not affecting this issue at all.
Comment #192
spokjeIt seems like this is the final code-blocker: #3292780: Move Quick Edit related Javascript from core/modules/ckeditor5/js/ckeditor5.es6.js::detach() to the Quick Edit module.
#FamousLastWordsThatMostLikelyWillNotBeTrueYetAgain
Since this is a JavaScript issue, I myself tried yesterday to do this myself, and failed in various, spectacular ways.
Somebody with an actual (JavaScript-minded) brain is needed to get that one over the line.
Sisyphus approves this message.
Comment #193
spokje#3292780: Move Quick Edit related Javascript from core/modules/ckeditor5/js/ckeditor5.es6.js::detach() to the Quick Edit module was committed, this issue now needs #3291700: new subtree split of core Quick Edit into contrib (v2) to land and manual testing after that (https://drupal.slack.com/archives/C014CT1CN1M/p1658772338310209)
Comment #194
spokjeNote
This MR (against
10.0.x) needs:- the fixture changes updated
- a separate patch against
10.1.x.Since fixture changes are tedious work and there are a lot of those floating around in several other issues that are close to being committed, I (=Spokje) have given up on updating the MR until the dust settles a bit and I can do the update in one go.
By the time this issue is actually not being postponed any more it should be quick and easy enough (#FamousLastWords) to create the
10.1.x-patch by me or basically anybody.The fixture update is a bit more elaborate, but I strongly believe that I since I've figured it out, so can anybody.
If anybody feels inclined to keep the MR up-to-date whilst this issue is still postponed: Please be my guest :)
Comment #195
spokjeComment #196
spokjeComment #197
spokjeComment #198
longwaveI'm going to be bold and say we can continue moving this forward. I wrote manual test steps in #3303780: Manually test QuickEdit module removal that when combined with the patch in #3291700: new subtree split of core Quick Edit into contrib (v2) mean that I can successfully upgrade from a Quick Edit-enabled Drupal 9.4 to 10.0.x.
@Spokje as the king of fixture rerolling if you want to give this another pass I am happy to review :)
Comment #199
dwwquickedit 1.0.2 is now out, so I simplified the instructions in #3303780: Manually test QuickEdit module removal and moved them into the summary. I believe we're very close. 🤞 Agreed, if @Spokje is willing to do the fixture reroll, we're all very eager to RTBC this. 😉 If you want someone else to do so, please let us know. Thanks! 🙏
Comment #200
dwwI tried rebasing !2389 to latest 10.0.x. Hit a number of conflicts. Hope I resolved them all properly. 🤞 I did *not* fix the fixtures, so tests will probably still fail, but at least it's mergable again. 😅
Comment #201
dwwIs #3303780: Manually test QuickEdit module removal supposed to include applying the latest MR patch from here? It doesn't currently mention that step.
Also, can someone with sufficient powers please close MR!1020? That's against 9.3.x and now dead noise. Thanks!
Comment #202
dwwThe changes here seemed way too big. There were reverted branch merges from @Spokje that are touching a ton of seemingly unrelated files. I tried another more careful interactive rebase, and I think we're in better shape now. Still no re-rolled fixtures, but getting closer. There are a few changes I'm still trying to understand / verify.
Comment #203
dwwOkay, I've got https://git.drupalcode.org/project/drupal/-/merge_requests/2389/diffs down to 138 changes, from a high of ~275 or something in the previous version. The changes now all only look like removing Quick Edit, so I think this is a lot closer. Curious to hear from @Spokje about why all that other cruft was in there from the various "WiP" and "Round 1.1" commits, etc. Also curious to see what the bot thinks of all this. 😬
Comment #204
catchNo it's fine for manual testing to just rm -rf or similar.
Comment #205
longwaveSimilar to my comment over in #3270899: Remove Color module from core I think the remaining thing to do here is leave behind a stub
quickedit.installthat cleanly uninstalls Quick Edit for anyone who upgrades to Drupal 10 without installing the contrib module.Comment #206
dwwRe: #204: Added that step, thanks. Also adding steps for testing what happens if you leave 9.x core QE enabled and try to upgrade to D10 w/o installing contrib.
Re: #205: Per the monster Slack thread, no stubs. 😅 See #3270899-70: Remove Color module from core.
Thanks!
-Derek
Comment #208
longwaveRemoved a bunch of Quick Edit CSS and images from stable and stable9 that is provided by the module already.
Some things remain that I'm not sure what to do with:
Comment #209
longwaveRe #208.3 the tests triggers a mouseleave event on Quick Edit selectors, but if the selectors don't exist then the code is a no-op so this appears safe to remove.
Out of scope here but once Quick Edit is gone we can (hopefully) remove the skipped test in SettingsTrayBlockFormTest as it's possible the random fail was Quick Edit related.
Comment #210
catchIMO we should just leave that in so that it'll be there in the contrib version.
I found #2944810: [PP-1] Add tests edit various fields with QuickEdit module when Settings tray is enabled. and #2944145: [PP-1] Settings Tray prevents editing some fields with QuickEdit module which suggest not only is the current logic broken and untested, but that fixing it is dependent on fixing other test coverage. This is extremely tangled, and part of the maintenance burden of supporting conflicting UX patterns between contextual links, quickedit, and settings tray, so I don't think it should block removal. I do think we should open an issue against the contrib module and maybe manually test the behaviour (10.x quickedit and HEAD, 10.x quickedit + this MR) to see whether if and what the regression is. A possible quick fix for the contrib module would be to fork current HEAD's settings_tray.js entirely, and then replace the core version with that, then that would provide parity until we change settings tray in core. I've opened #3304909: Skip contrib Quick Edit's Settings Tray integration test until Settings Tray provides an API to improve integration in #3308867.
Comment #211
dwwThanks @catch for the review. Great point about the annotations needing to be altered back in.
Thanks @longwave for #208, related work, and for opening #3304893: Add Quick Edit metadata to core field formatters
#208.1 - Agreed w/ @catch to leave it in Seven until it's moved to contrib.
#208.2 - Ugh. 😅
#208.3 / #209 - Double ugh. 😬 But yay for at least getting this mess out of core. 😂
Re: #210: All sounds good. Thanks for opening #3304909: Skip contrib Quick Edit's Settings Tray integration test until Settings Tray provides an API to improve integration in #3308867.
I reviewed the MR and commits since #203. 2 of the threads can be resolved, but 3 are still open:
core/modules/ckeditor5/js/ckeditor5.es6.jsreferences to QE.core/themes/stable/images/image/error.svgis the right thing.Plus the issue of the test failures from the update fixture needing to be rebuilt. 😅
I'm about to go completely offline for 2 weeks, so there's not much more I can do here. I don't think there are any contrib blockers to this moving forward, so I heartily approve of this proceeding without me. 😉 If we need a 1.0.3 release, that can happen after Sep 7th when I'll be back. Also very happy if someone else wants backup commit access to QE contrib, just in case.
Thanks!
-Derek
Comment #212
spokjeRerolled with updated fixtures after #3270899: Remove Color module from core landed.
Unsure what to do with the thread in the MR about the generalisation of the comment. Are we OK after we remove the term "Quick Edit" and mention something like "Some modules require the current data to update EditorModel."?
Tried to answer the thread on the removal of stable/images/image/(error|upload).svg from stable.
Comment #213
catchMaybe 'Allow modules to update EditorModel by providing the current data' but tbh I don't know what's going on there so I'm just trying to rephrase a sentence.
Comment #214
spokjeIn the same boat as you, but at the very least it removes a mention of Quick Edit, so I ran with your suggestion.
Real JS boffins can correct it later, if needed.
Comment #215
catchPut a patch up on #3304893: Add Quick Edit metadata to core field formatters. Can't verify the patch on DrupalCI until this issue is committed to core but it's pretty trivial.
Not sure what's going on with the DrupalCI errors here.
Comment #216
spokjeRerolled, retested, all OK now.
Comment #217
longwaveAdded the Stable images back again, they won't harm anything by being there, and there is a tiny chance someone is using them. Let's remove them when we get rid of Stable itself.
Comment #219
xjmWith the MR applied, the string "quickedit" still appears in the following files:
We agreed to leave the Seven integration there, but I think the ST thing probably needs to be addressed? We discussed it with the random test fail above, but it's still there in the MR.
Meanwhile, "quick edit" appears in:
The Settings Tray help topic (mentioned previously) is still kicking around. So I guess this is blocked on #3264949: Move Quick Edit help topics to contrib Quick Edit module also. But it looks like there's some more mentions to get rid of in ST code especially.
Comment #220
catch#3227033: Remove Quick Edit from core is open regarding the settings tray integration and the contrib module, I think we just need to remove that code from the MR here.
Comment #221
xjm@catch Is there a different issue you meant to link?
Comment #222
catchSorry, this one: #3304893: Add Quick Edit metadata to core field formatters.
That change is now also in #3270434: Mark Quick Edit deprecated.
Comment #223
spokjeSo this Settings Tray "Quick Edit" thing:
I've always left it alone, since it wasn't sharing any code/functionality with the module QE as we're removing it in here.
Basically it's just the name that's the same.
Do I understand we now want remove this also? I'm not against it, but since it doesn't have any code overlap with the current QE module, should it still go there?
AFAIK: The Settings Tray QE doesn't do anything fancy JS/BackBone things, besides the (admittedly) confusing name, wouldn't it be easier to keep?
Comment #224
catch@Spokje this is about quickedit-specific code in
core/modules/settings_tray/js/settings_tray.jsIt was added in commit
07d2ae1efd#2782915: Standardize the behavior of links when Outside In editing mode is enabled.Settings tray is using data-quckedit-entity-id and .quickedit toolbar and etc. to modify what quickedit does (mostly disable stuff) when settings_tray is active. It doesn't break without the change, but there's a usability regression.
The test coverage has been moved to
tests/src/FunctionalJavascript/SettingsTrayIntegrationTest.phpin the contrib module. If the test fails without the code, that won't happen until this issue is actually committed to 10.x.#3304909: Skip contrib Quick Edit's Settings Tray integration test until Settings Tray provides an API to improve integration in #3308867 is open to add back that settings_tray fix to quickedit.
However, we still need to essentially revert #2782915: Standardize the behavior of links when Outside In editing mode is enabled from settings_tray.js in order to be able to fully remove quickedit from core.
Comment #225
spokjeThanks @catch.
Quick Edit, the module that keeps on giving...
Comment #226
spokjeSo I _think_ I reverted #2782915: Standardize the behavior of links when Outside In editing mode is enabled in the JS. (Looked at https://git.drupalcode.org/project/drupal/-/commit/07d2ae1efd6a141c91111... for inspiration).
Unsure how to handle/interpret the (oncoming) test failure:
after reading this:
Comment #227
spokjeThanks @catch, your JS remarks indeed fixed the failing test.
Comment #228
spokjeComment #229
bbralaComment #230
bbralaOk, so i read through this whole monster. I've applied this patch to 10.0.x. I've search for: quickedit, quick, quick edit. And found only some references in the settings tray. Which are talked about in length in comments from #210. Therefor this seems like we ended up with a clean removal.
#3303780: Manually test QuickEdit module removal has been fixed just a minute ago, that was the last blocked. The issues in the contrib module for the last few parts of missing code/texts have been made and RTBC or close to it.
Id say. Nuke it with fire <3
Comment #231
catchOK we have a couple of contrib issues to commit but given we know @dww is away for a week or so and he's been quick to commit/release things before, I think we're fine to go ahead here and resolve the contrib issues against the contrib module. We can track them in the parent tasks issue to make sure we know all blockers are fixed maybe.
Committed/pushed to 10.1.x and cherry-picked to 10.0.x, thanks! When we decided to deprecate this module I had no idea it had quite so many tentacles all over core..
Comment #233
quietone commentedUpdated the CR to use alpha7 and published the CR.
Comment #235
wim leerss/QuickEdit/Quick Edit/