Follow up issue created. Lets get this one in first then. Rebased and marking as RTBC.
thejimbirch → made their first commit to this issue’s fork.
Removed.
MR added which removes the script and the symlink, but leaves the recipe.
thejimbirch → made their first commit to this issue’s fork.
Thanks for the quick response! Was literally writing my commit message, Hard codes at 1.18 until ... and came here to get the issue #.
I can confirm 1.20 no longer WSOD in 10.4.
There is no compatibility with Drupal CMS. The compatibility is with Drupal core.
Ask the maintainer of the module to create a release that supports Drupal 11 and it will be installable on Drupal CMS in project browser.
The decision to list only content type recipes was intentional.
Drupal CMS does not have any patches to modules as the cweagans/composer-patches plugin you added is not approved to work with core's automatic updates module, which is what Project Browser uses to manage packages. There is an unapproved config you can set to work around this until they support additional composer packages. See: https://www.drupal.org/project/automatic_updates/issues/3437845#comment-... ✨ Support oomphinc/composer-installers-extender and wikimedia/composer-merge-plugin Active
I have run into this also, WSOD with Drupal 10.4.1 and Taxonomy Entity Index 1.19.
Downgrading to Taxonomy Entity Index 1.18 removed the error.
Seems like a lot of work to add a class, and will only be available in the Drupal CMS Olivero theme.
I think how it is implemented is the Drupal way, but I would like to propose a alternate solutions.
Option 1 - Block Class
If we added the block class module, we could add a second Page Title block for the home page with the .visually-hidden
and .sr-only
classes, which are the most common classes in css frameworks.
Pros:
No theme hardcoding/custom code
Cons:
Ongoing support for block_class, but it really is a useful no-code tool.
Duplication of Page title block config.
Option 2 - ECA
Using the Render: add class action, we may be able to add the class to the home page block.
Pros:
No theme hardcoding/custom code
No additional modules
Cons:
Not as visible to site builders as block class.
thejimbirch → made their first commit to this issue’s fork.
Code looks fine. Rebased and moving to RTBC assuming the tests will turn green.
thejimbirch → made their first commit to this issue’s fork.
This MR changes a lot of image style config entities. I think we should set precedent to document these changes with a Change record.
Thanks for the contribution and the thorough reviews! Resolved all threads and moving to RTBC.
@kristen pol created the follow up issue.
thejimbirch → created an issue.
thejimbirch → created an issue.
I added an MR with Artem's notes. We need to add which config files each of the actions work on, then I think this is good to go.
thejimbirch → changed the visibility of the branch 3491066-document-addnavigationblock-new to hidden.
Thank you for your contribution!
This looks good, but does drop support for Drupal 9. I don't think you need to support Drupal 9, I just wanted to make that obvious.
Thanks for finding and fixing this @penyaskito ! The added test coverage is great.
We discussed this in slack last night and removing the RSS feed link is the correct approach as there isn't one, and it is not the SEO track's place to add one.
I made 2 minor suggestions to simplify the config actions, but marking this as RTBC as it looks great.
Removing Needs tests tag as tests were added.
The issue was moved to Drupal core, but the MR needs to be moved also.
thejimbirch → created an issue.
Marking as RTBC assuming tests will turn green.
Comment #21 is a great start for the change record. In addition, we should also document that you added and how to use addDisplay
and duplicateDisplayAsType
.
Here is a past example of a change record for a new config action.
This looks good. Will we need a follow up to tax 1.0?
This looks good. Moving to RTBC.
Do we have next steps here?
@the_g_bomb The Google doc is private. Would you consider publishing your findings here and we can mark this issue as Fixed?
Marking as Needs Work based on the comments in #2
Marking as Needs Work based on the comments in #18
I checked out the 1.0.x branch, ran ddev rebuild and can verify drupal_cms_olivero was downloaded by composer at 1.0.x and the command finished.
Marking as fixed.
I can confirm before this MR, applying the Analytics recipe in the UI led to a WSOD.
After the MR is applied, the recipe can be applied, I was presented the input screen, and could enter a key.
Marking as RTBC
Makes perfect sense and the code looks good. Marking as RTBC assuming the tests will turn green.
Looks like this is a core issue: 🐛 Warnings logged for missing field block plugins when enabling layout builder on an entity view display for the first time Active . Postponing on that.
Content in the readme looks great. Thanks for the edits @kristen pol
Marking as RTBC
Thanks for working through this. We merged 📌 Review checklist items for relevance Active and release 5.2.4 of seo_checklist which updates the checklist items, and changes the language for items we cannot automatically check.
Once 🌱 Create a new architecture for checklists as config entities, with tasks fulfilled by conditions Active is complete and seo_checklist is updated to the config entity checklist system, we can do more to check items off that the initial recipes do here. But that is only a dream right now. We can revisit if that ever happens.
penyaskito → credited thejimbirch → .
Config Action documentation:
https://git.drupalcode.org/project/distributions_recipes/-/blob/1.0.x/do...
phenaproxima → credited thejimbirch → .
thejimbirch → created an issue.
thejimbirch → created an issue.
I created MR 21 against the 2.x branch with manual application of the changes in MR 17.
Moving to Needs Review.
thejimbirch → changed the visibility of the branch 3451117- to hidden.
thejimbirch → made their first commit to this issue’s fork.
This was discussed in a Recipes initiative meeting and we decided it was best to leave it as is. Recipe author documentation was updated with the following that allows for most of everyone's needs except for replace/override which is a deliberate decision that the recipe team has made to not be destructive to sites.
# The recipe system compares configuration from your recipe and the modules
# you bring in against your site's active configuration. By default it
# requires that they be identical in every detail, or it throws an error.
# strict: true
# You can set this to false to have the recipe runner skip the config import
# if it finds anything different.
# strict: false
# A recipe can choose to opt only certain config into the strict checking. If
# you specify individual config files to be treated strictly, then all others
# will be treated lenient.
# strict:
# - field.storage.field_oysters
# - field.storage.field_quahogs
Love it! Thanks for the contribution!
thejimbirch → created an issue.
Thanks for the find and the contribution!
thejimbirch → made their first commit to this issue’s fork.
When we created this recipe, we did have a multilingual recipe (from the prototype), and IIRC, we chicken and egg-ed language into the SEO recipe rather than have the multilingual require the redirect module.
Re #8 redirect/config/optional/language.content_settings.redirect.redirect.yml is a configuration entity and would need to be specifically imported in the future multilingual recipe. It would not automatically be imported.
I approve of removing it. Thanks for the MR.
My testing steps were to install Drupal CMS with various content types. The last time with News and Blog I believe.
Then went to Project browser, clicked on the Recipes browser and applied the Search recipe.
I then verified content was created at /admin/content.
Then visited the logs to discover the errors.
Are the views indexing because of the News And Blog listing pages?
Language was added to support the redirect module in this commit:
https://git.drupalcode.org/project/drupal_cms/-/commit/c2da73258577c6d93...
That's why it is in the base SEO recipe.
I am not sure that this is a Drupal CMS issue, but a Drupal issue as the steps to reproduce are on a specific stack, but the Drupal CMS tooling.
However, I can be confident that this is not an SEO track issue.
Moving it to the Infrastructure track, but assume this is a Drupal core issue.
Thanks, I appreciate the effort to move this issue forward.
Change looks safe. Marking RTBC
Analytics and Accessibility Tools now exist. We can work on this now.
Updated formatting, but still needs tests.
I think this issue can be closed as fixed as the recipe has been committed.
Has merge conflicts, moving to Needs Work.
The ECA works as expected.
I am tempted to mark as RTBC, but I am getting a search_api error in the logs.
RuntimeException while trying to render item entity:node/7:en with view mode search_index for search index Content: Failed to start the session because headers have already been sent by "/var/www/html/vendor/symfony/http-foundation/Response.php" at line 402. in Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage->start() (line 116 of /var/www/html/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php).
#0 /var/www/html/web/core/lib/Drupal/Core/Session/SessionManager.php(128): Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage->start()
#1 /var/www/html/web/core/lib/Drupal/Core/Session/SessionManager.php(93): Drupal\Core\Session\SessionManager->startNow()
#2 /var/www/html/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php(282): Drupal\Core\Session\SessionManager->start()
#3 /var/www/html/vendor/symfony/http-foundation/Session/Session.php(201): Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage->getBag()
#4 /var/www/html/vendor/symfony/http-foundation/Session/Session.php(221): Symfony\Component\HttpFoundation\Session\Session->getBag()
#5 /var/www/html/vendor/symfony/http-foundation/Session/Session.php(69): Symfony\Component\HttpFoundation\Session\Session->getAttributeBag()
#6 /var/www/html/web/core/modules/views/src/ViewExecutable.php(763): Symfony\Component\HttpFoundation\Session\Session->get()
#7 /var/www/html/web/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php(2268): Drupal\views\ViewExecutable->getExposedInput()
#8 [internal function]: Drupal\views\Plugin\views\display\DisplayPluginBase->elementPreRender()
#9 /var/www/html/web/core/lib/Drupal/Core/Security/DoTrustedCallbackTrait.php(107): call_user_func_array()
#10 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(825): Drupal\Core\Render\Renderer->doTrustedCallback()
#11 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(387): Drupal\Core\Render\Renderer->doCallback()
#12 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(459): Drupal\Core\Render\Renderer->doRender()
#13 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(203): Drupal\Core\Render\Renderer->doRender()
#14 /var/www/html/web/core/lib/Drupal/Core/Template/TwigExtension.php(484): Drupal\Core\Render\Renderer->render()
#15 /var/www/html/web/sites/default/files/php/twig/677c810bd25eb_block.html.twig_jlgEuxprQ6FxcHIzd-7Yrs0zj/lI_tXB4ZaDeNFyEGpKWXYKsXCqtOLzbKbDCm13u7REg.php(100): Drupal\Core\Template\TwigExtension->escapeFilter()
#16 /var/www/html/vendor/twig/twig/src/Template.php(431): __TwigTemplate_faf585ef680721184a0d202cbeb119b8->block_content()
#17 /var/www/html/web/sites/default/files/php/twig/677c810bd25eb_block.html.twig_jlgEuxprQ6FxcHIzd-7Yrs0zj/lI_tXB4ZaDeNFyEGpKWXYKsXCqtOLzbKbDCm13u7REg.php(79): Twig\Template->yieldBlock()
#18 /var/www/html/vendor/twig/twig/src/Template.php(387): __TwigTemplate_faf585ef680721184a0d202cbeb119b8->doDisplay()
#19 /var/www/html/vendor/twig/twig/src/Template.php(343): Twig\Template->yield()
#20 /var/www/html/vendor/twig/twig/src/Template.php(358): Twig\Template->display()
#21 /var/www/html/vendor/twig/twig/src/TemplateWrapper.php(35): Twig\Template->render()
#22 /var/www/html/web/core/themes/engines/twig/twig.engine(33): Twig\TemplateWrapper->render()
#23 /var/www/html/web/core/lib/Drupal/Core/Theme/ThemeManager.php(348): twig_render_template()
#24 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(446): Drupal\Core\Theme\ThemeManager->render()
#25 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(459): Drupal\Core\Render\Renderer->doRender()
#26 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(203): Drupal\Core\Render\Renderer->doRender()
#27 /var/www/html/web/core/lib/Drupal/Core/Template/TwigExtension.php(484): Drupal\Core\Render\Renderer->render()
#28 /var/www/html/web/sites/default/files/php/twig/677c810bd25eb_layout--onecol.html.twig_Pivc4GMqqu0ofsonWmMYENg09/GYMt6AwW0y_AKNAJ8TnBKXHfHbEbLB2nDJ8bgoUCDsg.php(57): Drupal\Core\Template\TwigExtension->escapeFilter()
#29 /var/www/html/vendor/twig/twig/src/Template.php(387): __TwigTemplate_5cef5491d6a171a2b7694c815ce59500->doDisplay()
#30 /var/www/html/vendor/twig/twig/src/Template.php(343): Twig\Template->yield()
#31 /var/www/html/vendor/twig/twig/src/Template.php(358): Twig\Template->display()
#32 /var/www/html/vendor/twig/twig/src/TemplateWrapper.php(35): Twig\Template->render()
#33 /var/www/html/web/core/themes/engines/twig/twig.engine(33): Twig\TemplateWrapper->render()
#34 /var/www/html/web/core/lib/Drupal/Core/Theme/ThemeManager.php(348): twig_render_template()
#35 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(446): Drupal\Core\Theme\ThemeManager->render()
#36 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(459): Drupal\Core\Render\Renderer->doRender()
#37 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(459): Drupal\Core\Render\Renderer->doRender()
#38 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(203): Drupal\Core\Render\Renderer->doRender()
#39 /var/www/html/web/core/lib/Drupal/Core/Template/TwigExtension.php(484): Drupal\Core\Render\Renderer->render()
#40 /var/www/html/web/sites/default/files/php/twig/677c810bd25eb_node.html.twig_Inzr4pATQnun6K99vBAIcaR_m/sB272BwYcSZ9Poqdmx8jvUNIMtw8xfLIlsYusA9EUdQ.php(133): Drupal\Core\Template\TwigExtension->escapeFilter()
#41 /var/www/html/vendor/twig/twig/src/Template.php(387): __TwigTemplate_c26ee512e43821e6bb8940e67a63c302->doDisplay()
#42 /var/www/html/vendor/twig/twig/src/Template.php(343): Twig\Template->yield()
#43 /var/www/html/vendor/twig/twig/src/Template.php(358): Twig\Template->display()
#44 /var/www/html/vendor/twig/twig/src/TemplateWrapper.php(35): Twig\Template->render()
#45 /var/www/html/web/core/themes/engines/twig/twig.engine(33): Twig\TemplateWrapper->render()
#46 /var/www/html/web/core/lib/Drupal/Core/Theme/ThemeManager.php(348): twig_render_template()
#47 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(446): Drupal\Core\Theme\ThemeManager->render()
#48 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(203): Drupal\Core\Render\Renderer->doRender()
#49 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(120): Drupal\Core\Render\Renderer->render()
#50 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(593): Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}()
#51 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(119): Drupal\Core\Render\Renderer->executeInRenderContext()
#52 /var/www/html/web/modules/contrib/search_api/src/Plugin/search_api/processor/RenderedItem.php(227): Drupal\Core\Render\Renderer->renderInIsolation()
#53 /var/www/html/web/core/lib/Drupal/Component/Utility/DeprecationHelper.php(40): Drupal\search_api\Plugin\search_api\processor\RenderedItem->Drupal\search_api\Plugin\search_api\processor\{closure}()
#54 /var/www/html/web/modules/contrib/search_api/src/Plugin/search_api/processor/RenderedItem.php(225): Drupal\Component\Utility\DeprecationHelper::backwardsCompatibleCall()
#55 /var/www/html/web/modules/contrib/search_api/src/Item/Item.php(281): Drupal\search_api\Plugin\search_api\processor\RenderedItem->addFieldValues()
#56 /var/www/html/web/modules/contrib/search_api/src/Entity/Index.php(1000): Drupal\search_api\Item\Item->getFields()
#57 /var/www/html/web/modules/contrib/search_api/src/Entity/Index.php(948): Drupal\search_api\Entity\Index->indexSpecificItems()
#58 /var/www/html/web/modules/contrib/search_api/search_api.module(117): Drupal\search_api\Entity\Index->indexItems()
#59 /var/www/html/web/core/lib/Drupal/Core/Cron.php(275): search_api_cron()
#60 /var/www/html/web/core/lib/Drupal/Core/Extension/ModuleHandler.php(307): Drupal\Core\Cron->Drupal\Core\{closure}()
#61 /var/www/html/web/core/lib/Drupal/Core/Cron.php(258): Drupal\Core\Extension\ModuleHandler->invokeAllWith()
#62 /var/www/html/web/core/lib/Drupal/Core/Cron.php(97): Drupal\Core\Cron->invokeCronHandlers()
#63 /var/www/html/web/core/lib/Drupal/Core/ProxyClass/Cron.php(75): Drupal\Core\Cron->run()
#64 /var/www/html/web/modules/contrib/automatic_updates/src/CronUpdateRunner.php(126): Drupal\Core\ProxyClass\Cron->run()
#65 /var/www/html/web/core/modules/automated_cron/src/EventSubscriber/AutomatedCron.php(65): Drupal\automatic_updates\CronUpdateRunner->run()
#66 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(246): Drupal\automated_cron\EventSubscriber\AutomatedCron->onTerminate()
#67 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(206): Symfony\Component\EventDispatcher\EventDispatcher::Symfony\Component\EventDispatcher\{closure}()
#68 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\Component\EventDispatcher\EventDispatcher->callListeners()
#69 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(114): Symfony\Component\EventDispatcher\EventDispatcher->dispatch()
#70 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(63): Symfony\Component\HttpKernel\HttpKernel->terminate()
#71 /var/www/html/web/core/lib/Drupal/Core/DrupalKernel.php(683): Drupal\Core\StackMiddleware\StackedHttpKernel->terminate()
#72 /var/www/html/web/index.php(22): Drupal\Core\DrupalKernel->terminate()
#73 {main}
thejimbirch → made their first commit to this issue’s fork.
This makes sense. Blog and News use the node's date and are styled from .node_meta
We should encourage any future content types that need a date field use field_event__date
Marking as RTBC
This is fixed on 1.x.
The view is disabled in https://git.drupalcode.org/project/drupal_cms/-/blob/1.x/recipes/drupal_...
# Disable the taxonomy and media scheduler views because they are not
# needed and break the navigation menu.
views.view.scheduler_scheduled_media:
disable: {}
views.view.scheduler_scheduled_taxonomy_term:
disable: {}
Looks good. Moving to RTBC.
This change looks
fine from a theme perspective.
I don’t believe the author information is available to set that the configuration/recipe level so marking this at RTBC as it is the best option to solve the issue.
Looks great.
The recipes system has the strictest configuration validation of any system in Drupal. What you are running into is invalid configuration. The invalid items are:
- settings.platforms
- settings.appearance
- settings.link_attributes
- settings.iconset
Looking at the code base of the module at https://git.drupalcode.org/project/social_media_links, there is no config schema for the settings the module adds to block configs.
This issue should be moved to that module's queue.
Why is it invalid?
- Need to figure out how to add a condition on the image (add .feature--has-no-image to the parent div when image is not provided)
You may be able to use :has() inside :not() instead of adding a class.
div:not(:has(img)) {
background: blue;
}
If the recipe author includes the importing of language.entity.und
and language.entity.zxx
in their recipe, is that enough? Or does the language module not install correctly because the config entities are imported after the install?
While this is an SEO feature, ultimately, it needs to end up in the Events recipe.
Is it possible for 2 change records? We have been adding them for new and altered config actions. Something like:
Recipes can now add a component in a Layout Builder layout using the addComponent config action