i have this configuration:
if there are no results the view print: {{ 'News'|t }}
if there are results instead it is correctly printed
(this issue don't fix this problem: https://www.drupal.org/node/2610236)
i have this configuration:
if there are no results the view print: {{ 'News'|t }}
if there are results instead it is correctly printed
(this issue don't fix this problem: https://www.drupal.org/node/2610236)
When a base field (e.g. entity path) properties are changed (e.g. it is made non-translatable), it's isInternal()
method is inherited from FieldConfigBase
, so that any computed field becomes internal though initially the field might be non-internal. This, for example, will remove the field from JSON:API results and might have other undesired consequences.
The correct approach is to inherit the internal property from the base field definition like other properties like "computed" and "read only" are.
Without proper caching, Drupal is SLOW, just like many extensible PHP frameworks. Despite the great cache tag feature of Drupal 8, not everything can be fully cached.
One major problem is Drupal's bootstrap is very resource-intensive. Regardless of how much time we put into optimizing it, it can only become slightly faster. The reason for this as i believe is because we're using the wrong approach. Bootstrapping the whole application for every request is just wrong. Things get even worse when one wants to use Drupal as a headless REST API for something like a progressive application with many small simultaneous requests.
The web is becoming much faster and the content is extremely customized. In many cases caching just wouldn't cut it.
just to name few related technologies: Progressive Apps, HTTP2, IoT, REST, Li-Fi, 5G, etc.
With Drupal headless initiative which makes using Drupal for modern web much easier and semantic versioning which makes it possible to add many new features to core every several months, can Drupal really compete with Walled Garden ? Will 200-300ms for dynamics content acceptable for users and clients? Drupal can be used for sites with heavy traffic and dynamic content, but if we put aside how challenging it's, it can never deliver the same performance as more modern Web solutions written by likes of Node.js
I think this is important enough to become an initiative.
It's simple, not to bootstrap Drupal every time. Up until a few years ago, there wasn't any reliable solution fast enough worth the effort. But now there are several open-source projects already in production (PHP-PM, PHPFastCGI, Icicle, AppServer.io , etc). And it is fast, we're talking about 10-30ms and few kilobytes of memory usage without any caching or optimization against 100-150ms and megabytes of memory usage (The numbers come from my experiment with ReactPHP HTTP server and a custom Silex application). This is without any optimization, just changing the approach! But when the application bootstraps only once and objects are persistent, a lot of things can be greatly optimized.
I haven't been able to find any benchmarks for Drupal, but for other frameworks the are several :
More information on the wiki page: https://groups.drupal.org/node/417723
There has been several attempts, discussions and experiments so far using different approaches :
Providing a UI for an entity type involves a lot of boilerplate code.
In particular, three YML files have to be provided:
- MODULE.links.menu.yml
- MODULE.links.task.yml
- MODULE.links.action.yml
These contain repetitive boilerplate code, where furthermore it's very easy to make a mistake and match up the route names incorrectly.
Add a new handler type for entities, 'link_provider'. This defines menu, task, and action links for an entity type.
Provide two link provider handlers in the Entity component that follow the standard admin UI pattern (for example, as used by Media module's entity types):
- DefaultContentEntityLinkProvider
-- defines a local task link for the collection under admin/content, alongside the Content admin listing
-- defines a menu link for the collection as well, so it appears in the admin toolbar
-- defines the 'add new entity' action link on the collection page
-- defines a set of local tasks link for view/edit/delete for a single entity
- DefaultConfigEntityLinkProvider
-- defines a menu link for the collection under admin/structure
-- defines the edit form local task link, which allows Field UI to attach its own tasks for the case that this config entity is the bundle for a content entity.
Both of these link provider handler classes expect to find the route names created by core's route_provider classes.
Entity types that customize their route provider to change or add routes would need to use their own link_provider handler (or keep using hardcoded link plugins of course).
- Get a review from one of the managers of the plugin system. YAML plugins are not discoverable in core/lib (unlike annotation-based plugins), and so the current patch declares the plugin derivatives that are in core/lib/Core/Entity in system module's YAML files. This approach needs framework manager review.
Convert core's entity types to use these handlers. This is left as as follow-up, because changing an entity type to use a link provider handlers will cause the plugin IDs of the link plugins to change. It's not clear whether the BC policy on plugin IDs applies to menu plugins, and there is no policy or defined way on how to handle YAML plugin ID changes -- see #2922451: [policy no patch] Make it possible to mark plugins as deprecated.
None.
This task is part of the audio/video accessibility plan - #3002770: Provide authors with tools to manage transcripts and captions/subtitles for local video and audio.
We want to provide authors with the ability to upload WebVTT <track>
files with subtitle, caption, and audio description, to supplement HTML <video>
and <audio>
elements.
<track>
element. Authors should be able to set kind, label, src, srclang, default
. Browsers currently only support captions and subtitles, but some JS player libraries support audio descriptions and chapters tracks too (notably AblePlayer).Validation: the default
attribute has a peculiar usage. It says which track is to be considered the default track to use, but this means the default track for each possible value of the kind
attribute. For example, a <video>
could have chapters, audio description, subtitles, and captions tracks, in 3 languages. There could be up to 4 default <track>
elements in this case. Validating this could be tricky for the UI. Decide if validation is required/feasible for the <track default>
attribute. We might just trust authors to use it correctly.
<track default>
attribute.generateSpecimenValue
. The patch has some pseudocode already.Adds new FieldType and FieldWidget plugins to represent a HTML <track>
element.
None.
Adds a new FieldType plugin to represent a HTML <track>
element.
Regarding #2350939: Implement a generic revision UI @smustgrave asked if the node's view filter "Get the actual content from a content revision" should be made generic or per entity.
@todo
@todo
Discuss the best approach
Propose a resolution
Work on a patch/MR
Review
Commit
@todo
@todo
@todo
@todo
Note: As far as I know unnecessary code counts as a bug, but this could also be seen as a task (and then retargeted for 9.4?), not sure.
Found in #3257407: Use "content" region in BlockCreationTrait::placeBlock() instead of "sidebar_first".
SettingsTrayBlockFormTest
's implementation of getTestThemes()
is identical to that of it's parent SettingsTrayTestBase
-
Remove SettingsTrayBlockFormTest::getTestThemes()
.
-
-
-
The current web.config
doesn't relax the default requestPathInvalidCharacters
settings of IIS.
This means that colons (:
) in URLs are classified as invalid characters.
Because of this URLs like the one from the block management (http://wl56www523.webland.ch/drupal/web/admin/structure/block/add/block_content%3Adc5f60cf-8510-4a21-b899-641571747188/bodies?region=section_first&_wrapper_format=drupal_modal
) are blocked.
Add the <httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="*,%,?,\,&,<,>" />
directive to the web.config
file.
This should allow colons in URLs.
This was tested with "Microsoft-IIS/7.5" and "AspNet-Version:4.0.30319" - as I'm very unfamiliar with IIS this defintitely needs a review from someone that's more familiar with that webserver.
Another open question is if the config syntax for &,<,>
is valid - I had to use &,<,>
to avoid a 500 error from IIS, and it seems like the related chars are filtered properly.
However, if this is server version / configuration specific syntax we might break installations if we simply update the web.config
.
None
None
None
\Drupal\Tests\rest\Functional\BcTimestampNormalizerUnixTestTrait was deprecated in Drupal 9 and should be removed for Drupal 10.
Remove the class.
There are various bits of code in the \Drupal\Core\Update and \Drupal\update namespaces that were deprecated in Drupal 9 for removal in Drupal 10.
Remove the deprecated code.
\Drupal\FunctionalTests\Image\ToolkitTestBase was deprecated in Drupal 9.1 and should be removed in Drupal 10.
Remove the class.
Remove any remaining references.
From #3275864: [upstream] Update to Symfony 6.1.1.
Full test results: https://www.drupal.org/pift-ci-job/2364329
1x: The "Symfony\Component\Validator\Constraints\Range::$minMessage" property is considered final. You should not override it in "Drupal\Core\Validation\Plugin\Validation\Constraint\RangeConstraint".
1x in ContextDefinitionIsSatisfiedTest::testIsSatisfiedBy from Drupal\Tests\Core\Plugin\Context
1x: The "Symfony\Component\Validator\Constraints\Range::$maxMessage" property is considered final. You should not override it in "Drupal\Core\Validation\Plugin\Validation\Constraint\RangeConstraint".
1x in ContextDefinitionIsSatisfiedTest::testIsSatisfiedBy from Drupal\Tests\Core\Plugin\Context
The range validator for entities now yields a more accurate 'value not in range' message, with its violation error code also more accurately being Range::NOT_IN_RANGE_ERROR
.
quietone | Hi |
larowlan | lee, sorry late :sad-panda: |
ambermatz | Hi, Amber, Portland, OR |
Kristen Pol (she/her) | Kristen, California |
lendude | Len, Amsterdam |
Tinto | Hi from Amsterdam, The Netherlands :wave: |
dipakmdhrm | Dipak, Pune, India :wave::skin-tone-5: |
dww | Derek from TEN7, temporarily back in the SF Bay Area, CA, US (to do some live duet concerts and see family/friends). |
jibran | Jibran, AU |
quietone | That it will force me to knit myself a new hat. |
larowlan | getting more sleep |
darvanen | Hopefully a little skiing |
ambermatz | going camping |
Kristen Pol (she/her) | summer fog keeps things cool on the coast |
lendude | I love the point where the tree in front of our house, in a very short period of time, explodes with leaves and blocks the view of the concrete and steel skyline of Amsterdam and all we can see is green instead of grey when looking out the living room window |
Tinto | Longer daylight! |
dipakmdhrm | Monsoon is coming! It's going to be gloomy, but at least a little cooler. Summer was :hot_face: |
dww | Excited for summer music camp season up on this side of the globe, although the pandemic (and a host of other global crises, really) continues to make that challenging and uncertain.(Aside: I love how "change in seasons" means so many different things to the folks participating in this meeting.) |
quietone | Would it make sense to have an issue of the day, say 12 hours after the current one to suit more timezones. |
Kristen Pol (she/her) | https://drupal.slack.com/archives/C03FH8GTB1A/p1654576621772299 |
Kristen Pol (she/her) | I've scheduled it to be after the bugsmash meeting for anyone that wants to spillover :wink: (edited) |
ambermatz | Are folks finding any gaps in the triage and comment template documentation? For example, @quietone added a section on “committed but reopened” last week. |
quietone | Went through the postponed bugs, only to see if any can be un-postponed. Found a few and then a 7 and 9 yr were closed an hour later by Berdir. |
Kristen Pol (she/her) | Did some triage and it was nice to close some things :slightly_smiling_face: |
Tinto | Wrote my first patch for a Drupal 10 issue and it passed automated tests :dancercarlton: |
dww | Glad to have helped smash another major #accessibility bug since the last meeting: #3227431: Tabledrag icon doesn't adapt to forced-colors mode |
ambermatz | Thanks @quietone for answering questions, adding docs, and just being an awesome person to contribute with. |
Tinto | Thanks @Gábor Hojtsy (he/him) for being everywhere at once and recognizing even the small contributions, @quietone for explaining things I don't understand and @lendude for figuring out why my tests fail. :pray: (edited) |
dww | Thanks @Kristen Pol (she/her) for spearheading the #contribution-events effort. |
dww | Thanks @quietone for getting #coding-standards going again. I'm guessing we will notice some bugs in the code we're going to end up touching. :wink: |
larowlan | v/ busy again at work and in spare time |
Kristen Pol (she/her) | Split between 3 different initiatives makes balancing tricky |
lendude | Work stuff |
Tinto | Client projects |
dww | The usual stuff, plus performing/producing some live music shows this Friday (Santa Rosa, CA) and Sunday (Oakland, CA) is happily taking a lot of my time and attention. |
larowlan | #3282188: [Meta] Bug Smash Initiative triage fortnight commencing 2022-05-24 |
Tinto | I think the previous meta is ready to be closed now?#3280028: [Meta] Bug Smash Initiative triage fortnight commencing 2022-05-10 |
larowlan | #3277586: Meeting of the Bug Smash Initiative 2022-05-10 |
larowlan | #3279816: Meeting of the Bug Smash Initiative 2022-05-24 |
Kristen Pol (she/her) | Maybe this is documented, but what are we looking for to approve the minutes? |
Tinto | Sometimes not all meeting participants are listed with their Drupal.org usernames. I guess we want to make sure everyone is credited. |
dww | For extra credit, you can scroll back up to the meeting in Slack in 1 window, and compare with the issue to make sure the scraper script didn't botch anything in any of the threads... |
dww | But I don't always go to that much trouble. :wink: |
quietone | Today: 2022-06-07
From: 2022-05-24 to 2022-06-07 All bugs Status Count Approximately 263 yr reduction in total number of years of all open bugs. Only bugs tagged Bug Smash Initiative Status Count Approximately 236 yr reduction in total number of years of all open bugs. |
quietone | Also under 6500 bugs in D9/10 Displaying 1 - 50 of 6497 |
larowlan | That's a nice milestone |
quietone | Priority (goal): actualCritical (50): 70 Major (1000): 979 Normal (6000): 5070 Minor (300): 378 |
dww | Wow, this is fabulous! Great work, everyone. It seemed like I barely had any time to contribute at all the last few weeks. It's lovely to see the stats this good, anyway. :heart_eyes: Filled with the collective joy of being part of something bigger than individuals. :heartpulse: |
larowlan | :dart: critical #1863258: Move entity preparation from form controller to entity class: "last changed" timestamp not updated and "create new revision" setting not respected when updating entities via Entity API |
larowlan | :checkbox: major #2620346: Logic Exception with preview button for block-comment |
larowlan | :checkbox: normal #2907995: Views UI sometimes fails to set overridden display to "All displays" |
larowlan | :checkbox: normal #2470489: NodeRevisionDeleteForm::submitForm uses the wrong check for setting a redirect |
larowlan | :dart: critical #3265868: MySQL sql_require_primary_key variable prevents primary keys from being dropped |
quietone | Summary of the above:Critical - both waiting on triageMajor - closed (cannot reproduce)Normal - NW and NR |
dww | 1863258 is still a critical bug. We have catch saying it's worth changing default behavior for (#15) and xjm escalating to critical as a data integrity bug (#34), and \Drupal\Core\Entity\ContentEntityForm is still the home of buildEntity() , updateChangedTime() and friends, which is what the bug seeks to change. |
dww | Given that 3265868 was opened by catch a few months ago, I see no reason to doubt that it is a critical bug. :wink:I'm following all 4 open targets now, and I think we can consider the criticals triaged.Do we want to grab another random major to set 5 targets again? (edited) |
quietone | I'll do the new randoms that after lunch. |
quietone | Fortnightly issues (at top of page) updated. |
ambermatz | Meaning the ones 3+ months since our last comment? |
Kristen Pol (she/her) | I think I might have been doing this wrong.If something was marked PMNMI a year ago, I was closing it if it didn't look like it could be reproduced (either lack of instructions or someone tried and couldn't reproduce).But then I saw an issue where @quietone gave 3 months for someone to add more info.Maybe this is clear in the docs and I need to relook... I was just copy/pasting from a template :) |
dww | Yeah, I thought there's a somewhat elaborate process we're trying to move PMNMI issues through, although I can't find it documented anywhere. :sweat_smile: Maybe @quietone knows where it lives? Let's cross link it from a few other spots like https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquette, perhaps under https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquett... , and/or at https://www.drupal.org/community-initiatives/bug-smash-initiative/issue-... ? |
quietone | What we have so far is, https://www.drupal.org/community-initiatives/bug-smash-initiative/issue-.... I just skimmed it and I think it needs some updating. I don't see that it covers what happens when you find a PMNMI that has the 3 month notice and it is passed the 3 months. |
dww | Okay, so it's just the 1 template on that page. I was confused... |
larowlan | That's a good idea, I can do that easily enough, it's just a reminder |
quietone | Will the script produce 2 different issues in 24 hours? |
larowlan | I don't think so, but we could make the second message say 'click send me to a random issue'? |
larowlan | or perhaps Len could add a second link? |
quietone | I like the less work option of adjusting the message. |
ambermatz | I like the idea |
lendude | I can just pad the seeding string (which is now the current day) with something like AM or PM, that should give us 2 targets each dayEasypeasy :woman-shrugging: |
dww | Yay, thanks! Glad folks are open to double the triage fun, and that it was so easy to add 2 random targets a day. |
lendude | Done, see https://lendude.gitlab.io/bug-smash-initiative/I went for the ‘first’ and ‘second’ prefix in the link , did ‘morning’ and ‘afternoon’ first but than figured that wouldn’t work for all the time zones :smile: |
Participants:
quietone, larowlan, darvanen, ambermatz, Kristen Pol, lendude, Tinto, dipakmdhrm, dww
The Bug Smash Initiative is a community effort to fix known bugs in Drupal core. See the Bug Smash Initiative handbook page for more information.
We meet fortnightly on Tuesday at 0400 UTC in the #bugsmash channel in Drupal Slack. Beware, this might be Monday evening for some people:
All meetings are posted as child issues.
Please do not comment on this issueexcept to add a new child issue for an upcoming meeting and change the title here. Thanks!
The next meeting is on Tuesday 2022-06-21
#3284765: Meeting of the Bug Smash Initiative 2022-06-21
Please see the "Child issues" block in the right sidebar or at the bottom of this page for links to past meetings.
Follow-up to #2855675: Add orderby key to all sequences in core
Sequences that are not sorted can result in unexpected configuration differences whilst importing configuration. Which confuses users because they are being told something is different when it is not. Also this behaviour can result in random test fails
Third party settings are ordered by the order in which the third party settings are added. This means that the same configuration can be different on depending on the order in which it is was configured.
Add orderby key and test it.
None
None.
All sequences in configuration sorted. This patch will introduce the generic upgrade path for all #2855675: Add orderby key to all sequences in core sub-issues.
If CKEditor 5 is selected as text editor for the Basic HTML format then the "Language" button is added automatically to the toolbar. This is also the case, if the text editor is switched from a CKEditor configuration where the Language button is disabled.
For the other default text formats (Full and Restricted HTML), the "Language" button is not automatically added.
The "Language" button has very limited use in a Drupal site because content languages are organized through the Core modules, and the user experience can be really confusing if HTML markup for languages can also be added within a field. Therefore enabling the "Language" button should be a conscious choice of a site builder, not the default option. Enabling it just to support the <span>
tag is not appropriate and should therefore be considered a regression.
(Also see GIFs in User interface changes.)
Do not add the "Language" button to the default CKEditor 5 toolbar configuration for Basic HTML to support <span>
.
How? See #5.
None.
<span>
was supported in the text format but not the "Language" pluginNow when you try to enable the Language plugin when <span>
is not yet supported, you will get a warning:
And it disappears/never appears if <span>
is supported:
CKEditor 5 plugin metadata now needs to explicitly list tags it can create, by listing it under drupal.elements
as just <tag>
, in addition to listing it as <tag attrA attrB>
.
None.
The drupal.elements
metadata in CKEditor 5 plugin definitions must now explicitly list which tags are creatable. Previously, any listed tag was assumed to be creatable by the CKEditor 5 module, even if it was only able to create attributes on an already existing tag.
When you have a problem in some early bootstrap/installer process you even end up with errors in the Logger, which triggers the authentication
Check first, whether the user is already set. In case its not, don't manually load them.
I am trying to add a relationship "file usage" to a view. I click the submit button, but the relationship never gets added and UI never closed. I can add other relationships as expected.
To replicate (with "standard" profile):
After these steps the relationship config dialog reports "The handler for this item is broken or missing" and no config form is displayed. The relationship can then be saved on the view (without configuration) but cannot be used.
Immediately upon adding the relationship an error similar to the following is printed in the views UI:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'fid' in 'field list': SELECT node_field_data.created AS node_field_data_created, node_field_data.nid AS nid, fid AS fid FROM {node_field_data} node_field_data WHERE (( (node_field_data.status = :db_condition_placeholder_0) )) ORDER BY node_field_data_created DESC LIMIT 10 OFFSET 0; Array ( [:db_condition_placeholder_0] => 1 )
And a barrage of notices are logged, containing and/or repeating:
Notice: Undefined index: id in Drupal\views\Plugin\ViewsHandlerManager->getHandler() (line 109 of /var/www/drupal-8/core/modules/views/src/Plugin/ViewsHandlerManager.php).
Notice: Undefined variable: items in Drupal\views\Plugin\views\relationship\Broken->buildOptionsForm() (line 79 of /var/www/drupal-8/core/modules/views/src/Plugin/views/BrokenHandlerTrait.php).
Notice: Undefined index: original_configuration in Drupal\views\Plugin\views\relationship\Broken->buildOptionsForm() (line 61 of /var/www/drupal-8/core/modules/views/src/Plugin/views/BrokenHandlerTrait.php).
During the Drupal 9 development process, we've discovered that setting platform requirements (PHP version, supported databases, etc.) is best done early during the major branch development process. Setting these to "obvious" minima as soon as possible and then increasing them more afterward was also valuable.