Closed (fixed)
Project:
Drupal core
Version:
8.7.x-dev
Component:
layout_builder.module
Priority:
Major
Category:
Task
Assigned:
Unassigned
Reporter:
Created:
18 Mar 2019 at 14:18 UTC
Updated:
16 Apr 2019 at 04:44 UTC
Jump to comment: Most recent, Most recent file
Comments
Comment #2
tim.plunkettComment #4
tim.plunkettOpened #3041107: Remove EntityDisplaySectionsTest in favor of a full suite of REST/HAL tests for the REST fail
Comment #5
tim.plunkettComment #6
xjmAdding a stub RM checklist to the IS.
Comment #7
effulgentsia commentedAdding the "Needs * review" tags.
Comment #8
tim.plunkettDoing a more through review of the @internal parts. This will still fail though, so leaving NW
Comment #9
tim.plunkettNone of the remaining stable blockers modify any CSS or templates, so this is safe to roll now.
Comment #11
tim.plunkettComment #12
tim.plunkettComment #13
webchickGreetings! Putting on the ol' product manager hat here! :D
Between all the Layout Builder stable blockers that have been reviewed/committed in the past few days, as well as UX reviews over the past few months, I've actually managed to put this functionality through basically all of its paces:
- Enabling the functionality in the first place
- Creating/editing default vs. overridden layouts
- Testing a wide variety of fields/blocks and ensuring they work properly
- Using keyboard navigation to modify layouts
- Testing integration with other core features such as Quick Edit and translations
- Testing simultaneous editing edge cases
- Testing the new, more granular permissions
All of the issues that I bumped into were either covered by "must have" issues that were recently committed, such as #2988970: Layout Builder should make it easier to modify the default layout for an entity type when viewing an entity, or for which there are already existing "strong should have" issues in the queue, like #3028979: Blocks with fixed width elements can break multi-column Layout Builder layouts .
One thing that I guess is apparent is that the UX/design review of this has been done for the most part on a patch-by-patch basis, and it shows in some places (for example, the wide variety of border styles, pointed out by @lauriii). Overall though, I don't find those disruptive enough to hold this extremely important functionality back from the general public. I'm sure we'll continue to further refine the UI of this in 8.8 and beyond.
Therefore, removing this tag, and providing official sign-off. GREAT WORK to the team, as well as the UX and a11y teams for all of their important contributions. I am SO excited to see this feature land!!! :D
Comment #14
phenaproximaRemoving the "Needs product manager review" tag per @webchick's comment above.
Comment #15
tim.plunkettRerolled
Comment #16
xjmOne thing we evaluate when we're getting ready to commit a module is the plan for post-stable work on the module. This can reflect team prioriries, essential missing features that were descoped from the immediate 8.7.0 release blocks (e.g. translation support), or important outstanding technical debt, especially aroud major issues, a11y and usability issues, et.
So this issue is a good opportunit to begin identifying the longer term roadmap, and what the next most-important things are between now and 8.7.0. We might want to outline these things on a roadmap.
Comment #17
tedbowI am willing and able to be a Layout Builder module maintainer. I read Subsystem Maintainers responsibilities.
Comment #18
dyannenovaI am also willing and able to be a Layout Builder module maintainer. I've read the Subsystem Maintainers responsibilities.
Comment #19
xjmComment #20
xjmComment #21
xjmThe extension points that are being made public make sense.
These look like they still need explanation of why they're internal.
Comment #23
larowlanI was asked by @effulgentsia to look at this for a FM review.
I looked over the issue queue for layout_builder as part of the Maintenance and technical debt item in the issue summary. There are currently around 120 open issues. I reviewed them and found many of the ones that sounded like major issues already had a patch and many had been written by @tim.plunkett, which is a good indicator of their quality/likelihood of being compatible with the module architecture and direction. Some of them required API changes, e.g. #3035174: Rename SectionStorageTrait to SectionListTrait but these were done using our standard BC/deprecation approach - so no cause for concern there.
There are a large number of issues that pertain to accessibility, which is a core gate - but none of these were flagged as critical. In addition, these would not impact Drupal's WCAG compliance, as they are primarily related to site-building and content-authoring, so that comes under ATAG. #3007978: Accessibility Plan for Layout Builder tracks these.
Two issues stood out as problematic, particularly the second one:
FormState::setResponsein their submit handler, which I think comes under the integrations item in the issue summaryI then reviewed for performance sake and found #3043330: Reduce the number of field blocks created for entities (possibly to zero). Because the FieldBlock plugin is part of Layout Builder and these blocks aren't visible to the regular block UI (
_block_ui_hiddenis TRUE) I think there is a performance win we can get there and this will improve #3043087: Retrieving plugins with entity context definitions from cache is expensive, which is noticeable when used with Layout Builder's FieldBlockDeriver. This will however, result in plugins that were previously present going away. Now, these plugins are declared by layout builder and designed for use with layout builder, however once they're in the wild and stable, then it may be more difficult to remove these. So I think that #3043330: Reduce the number of field blocks created for entities (possibly to zero) warrants serious consideration for being a stable blocker. The patch is small but the performance improvement is large - and if we do it now, we don't have to worry about taking away those plugins later. It would be down to a release manager as to whether removing plugins from core is permitted in a minor.I also reviewed the internal classes, as @xjm did as part of the patch. I found that InlineBlockUsage is not made part of the api in this patch (currently its flagged as internal). Is there a need for that to become public and if so - what aspects of it?
Finally, under the maintenance item of the issue summary, I note that @tim.plunkett and @tedbow have been prolific in their output for the module, and I thank Acquia for their continued sponsorship. I would like to ask if there is a plan for that sponsorship to continue once the module becomes stable. The size of the issue queue for the module (~120 or so issues) indicates there is still much work to do and providing that sponsorship post stable module will help to clear out that backlog. Note I'm not saying 'Acquia should continue to sponsor Tim and Ted' (although obviously that would be great), I'm asking if the plan can be articulated for the sake of transparency. I think this is something we should do for all major core features that are sponsored by an Organisation, as even after the feature is delivered, there is ongoing work we need to plan for.
Crediting @Sam152 who I discussed my comments and process with.
Comment #24
tim.plunkett#21
Fixed these and went through *every class* to make sure we had descriptions for @internal where necessary, and no extraneous @internals
#3043825: Create an interface for LayoutBuilderSampleEntityGenerator and #3043797: Create an interface for InlineBlockUsage are the two remaining classes that need fixing.
#23
As of right now, we have 121 issues (33 major / 87 normal / 1 minor):
47 bugs (14 major / 33 normal)
46 tasks (12 major / 33 normal / 1 minor)
22 feature requests (4 major / 18 normal)
0 support requests
6 plans (3 major / 3 normal)
I feel pretty good about those numbers, and the issues themselves (which I just triaged yesterday).
#2995893: Layout builder chokes on form exceptions that are part of natural form processing is RTBC now
#3030154: layout_builder__layout_section column hitting database limit is an easy fix but an incredibly difficult update path (straightforward for the 99% usage but who knows about the other 1%)
I don't think #3043330: Reduce the number of field blocks created for entities (possibly to zero) is possible without breaking sites, but let's discuss that in that issue.
Addressed @internal stuff above.
Will address the last paragraph in another comment.
Comment #25
tim.plunkettForgot the patch
Comment #26
balsama@larowlan thanks for the review.
I can speak to this a bit as an engineering manager at Acquia. We're definitely committed to finishing features (e.g. translation support) and responding to bugs as they affect the usability or stability of the module - especially in the context of Acquia's customers and partners, but not limited to. In addition, a certain amount of our DAT engineering time is allocated to subsystem maintenance for those that are maintainers.
It's tough to give much more detail than that because priorities do shift. Right now, we're betting on Layout Builder (as evidenced by @tedbow and @tim.plunkett's "prolific" output :)
Comment #27
tim.plunkettUpon further inspection, #3030154: layout_builder__layout_section column hitting database limit is not reproducible. And if it were, it would indicate that inline blocks are being serialized when they shouldn't be. The normal blob size of 64k should be sufficient.
I think #26 answers the question in the end of #23, but if it doesn't, know that I find Layout Builder very important for Drupal, and not just because my employer thinks it's important. I don't recall being asked a question like this before when volunteering as a subsystem maintainer for the other eight subsystems I work on.
Comment #28
tim.plunkettJust to be 100% clear:
These remove @internal in a way I deemed out of scope for the above patch, both are RTBC
#3043825: Create an interface for LayoutBuilderSampleEntityGenerator
#3043797: Create an interface for InlineBlockUsage
This was flagged above and is RTBC
#2995893: Layout builder chokes on form exceptions that are part of natural form processing
This is a major follow-up to a recent stable blocker and is RTBC
#3043687: Layout Builder's Quick Edit integration causes fatals when using field blocks for entities other than the one being viewed
This is not reproducible
#3030154: layout_builder__layout_section column hitting database limit
This is not doable without breaking sites and has a contrib implementation
#3043330: Reduce the number of field blocks created for entities (possibly to zero)
And then there are the stable blockers
#3043651: Update the Layout field to non-translatable when possible.
#3043646: For sites that have made layout overrides prior to 8.7.0 or sites that manually enable translation of the layout override field, add UI warnings
Comment #29
larowlan#3030154: layout_builder__layout_section column hitting database limit is not reproducible - that is great news
#3043330: Reduce the number of field blocks created for entities (possibly to zero) sounds like its not as straight forward - I will comment over there
#2995893: Layout builder chokes on form exceptions that are part of natural form processing is RTBC 🎉
Thanks Adam, that's what I was after
Just to be clear, my question was not directed at you (or Ted for that matter). It was directed at the sponsoring organisation. I would ask the same question of any other feature, e.g. if we were talking about workspaces module, I'd ask that Pfizer articulate what their ongoing commitment would look like. I think that is something we (the community) should be doing as part of long-term sustainability/diligence. But thank you for articulating your commitment.
On the basis of @balsama's reply and the progress/explorations that have occurred overnight (in my part of the world) for the other issues, I'm comfortable removing the 'Needs Framework Manager review' tag.
Thank you Tim, Ted and Acquia for bringing this feature to Drupal.
Comment #30
xjmOkay, we're down to just #3043646: For sites that have made layout overrides prior to 8.7.0 or sites that manually enable translation of the layout override field, add UI warnings!
Comment #34
tim.plunkettThis patch is built on top of #3043646: For sites that have made layout overrides prior to 8.7.0 or sites that manually enable translation of the layout override field, add UI warnings and will fail to apply until that is committed.
Someone please mark this NR once that goes in!
This moves the CSS added in that issue to Seven theme, with Lauri's guidance.
Comment #35
larowlanComment #36
tedbowJust a couple small things.
probably just a relative path problem when the css was moved.
I love that we are explicitly saying why things are internal!
There a couple @internal's in this class remaining. But since the class itself is internal(yay!) they can be removed
side note, won't be awesome if was CLI tool to scan code for todo's to closed d.o issues!
I like the order here 😉
oh.. its alphabetical by last name like all the others. Still
🎉
Comment #37
tim.plunkett#36
1)
Ah yes I had to adjust the relative paths when moving that one library to Seven, have to do the same for Stable theme
2)
<3
3)
Agreed
4)
I have half a CLI tool for this, and it caught a couple more (mostly just issues I closed this week doing triage)
5)
Or I'm just _that_ humble
6)
🙌🏻
Comment #38
tedbowOk. Everything looks good. manually checked the icons and they show now
🥁🗞........
RTBC
Comment #39
xjm@larowlan already covered pretty much everything I would have here.
Also, thanks @tim.plunkett for adding credits for the team here already.
However, anticlimactically:
@bnjmmn will post a patch fixing the linting errors.
Comment #40
bnjmnmHere is the lint-fixing anticlimactic patch 😊
Comment #41
tedbowDouble checked the intediff against #37 and checked the changes.
🍗🤣.......
RTBC!
Comment #43
xjmOkay, yay! :) Somewhat belatedly committed to 8.8.x and cherry-picked to 8.7.x.
Thanks everyone!
Comment #44
phenaproximaCongratulations, everyone! I’m proud to have been part of the team that made this happen. :)))
Comment #45
plachHuge milestone, thank you all!
Comment #46
tedbowThanks to the many, many people who helped make Layout Builder a reality!!!!!
Comment #47
sam152 commentedWhat an awesome milestone, congratulations to everyone who made this happen.
I'm part of a team who made the bet to go "all in" on layout builder on a large scale D8 site some 5 months ago. I can say that the reception from our client has been overwhelmingly positive and the capabilities it afforded us pushed the content authoring experience to a really high standard.
Thanks again to everyone and congratulations :)
Comment #48
aaronmchale🎉 This is fantastic, really great milestone, everyone who has contributed to Layput Builder should be very proud of what’s been achieved here. Special thanks and congratulations to @tim.plunkett and @tedbow as without their hard work I don’t think Layout Builder would be what it is today!
Like @Sam152, I took a gamble on using Layout Builder for an important project about a year ago and I’m pleased to say it has definitely paid off.
Comment #49
xjmSorry, I was somewhat exhausted yesterday after doing my final review and all the intense work on the last blockers these last two weeks. This is the thing I'm proudest of in 8.7 (and probably in any minor to date). Tagging for the highlights, of course.
Comment #50
wim leersHuge congrats! :)
From comments like #47 and #48, to articles like https://www.lullabot.com/articles/announcing-new-lullabotcom a month ago … I don't think there's ever been a more widely anticipated feature in Drupal 8 minor release yet! 🥳 👏
Comment #52
tim.plunkettThank you all for the past two years, I'm so proud of what we all accomplished!
(fixing credit for bnjmnm, not bnjmmn)
Comment #53
btriest commented@everyone that contributed the last 2 years. You made something well-thought, easy to use and flexible! It´s really something to be proud of!! Congratulations!
Comment #54
lauriii