Account created on 22 July 2015, about 10 years ago
#

Merge Requests

More

Recent comments

🇬🇧United Kingdom scott_euser

Thanks for progressing this! When I tried it out I hit a fair number of errors that I had to hack around to get it working (comments added to MR). When it is chunking its still fairly confusing. In my attached video I have 3 items being indexed, all get chunked in various quantities of chunks. It seems to say 100% quite quickly but does a lot more and I had trouble following along to understand where I am in the process. It does seem to properly index it all in the end.

🇬🇧United Kingdom scott_euser

Confirmed tests pass locally again when applying the patch from 🐛 Cannot create Search API based views On Drupal 11 Active

🇬🇧United Kingdom scott_euser

Thank you for sorting this one out! This also fixes the AI Search module (sub-module of AI core) where tests had to be disabled temporarily as a result: 📌 Reinstate MySQL tests Active

🇬🇧United Kingdom scott_euser

Very vague error so it was a real pain to see where it was going wrong. For convenience, the error:

Ai Search Setup My Sql (Drupal\Tests\ai_search\Functional\AiSearchSetupMySql)
⚠ Field indexing options
✘ Search view

├ Exception: Warning: Undefined array key "title"
├ Drupal\views\Views::fetchPluginNames()() (Line: 157)

🇬🇧United Kingdom scott_euser

Looks like the problem is upstream in 🐛 Cannot create Search API based views On Drupal 11 Active

🇬🇧United Kingdom scott_euser

Closing per comment above unless we hear further.

🇬🇧United Kingdom scott_euser

Thanks for the contribution, however Taxonomy Index Tid is a valid filter though and already allows things like BEF to work on it (compared to numeric/string entity reference filters).

If this module was to accept such a change it would need to be opt in, not default (e.g. a new config page) and include test coverage. Otherwise we age forcing a new behaviour on all existing users of the module which meant others may not want. For now will close but if multiple people feel strongly and are willing to contribute the above, could reconsider.

🇬🇧United Kingdom scott_euser

Okay that now handles:

  • New module install, navigation not yet enabled but gets installed later (hook_modules_installed kicks in)
  • New module install, navigation already enabled (hook_install kicks in)
  • Existing module update, navigation already enabled (hook_update_N kicks in)
  • Existing module update, navigation not yet enabled but gets installed later (hook_modules_installed kicks in)

I think this needs a new 2.x to make this Drupal 11+ only

🇬🇧United Kingdom scott_euser

scott_euser made their first commit to this issue’s fork.

🇬🇧United Kingdom scott_euser

Hi! Anything I can do here to help get this over the line? Thank you!

🇬🇧United Kingdom scott_euser

Yeah the problem with placing the block is we need to check if navigation is installed, but also need to react if it's not yet installed and later gets installed. I'll see if I can spend a bit more time on this to see how to do that

🇬🇧United Kingdom scott_euser

This commit essentially https://git.drupalcode.org/project/rebuild_cache_access/-/merge_requests... - no css needed in the end, it just takes the styling from Navigation module defaults so less maintenance burden also if they change things

🇬🇧United Kingdom scott_euser

Actually could just leverage the Navigation module:

Custom icon could be a potential follow-up too, but think its not worth being a blocker.

🇬🇧United Kingdom scott_euser

Given that Gin is now Drupal CMS + Navigation & Top bar are in place, these actions are typically more suitable now within the Navigation.

This MR creates a block but could use someone to style it to match navigation.

Steps to install:

  1. Ensure dependencies Gin (contrib/Drupal CMS) & Navigation module (Core) are enabled
  2. Go to Admin > Config > Navigation Blocks
  3. Add 'Rebuild cache' in the add block area, untick show title, and Save

There is probably some way to install it automatically but not sure how and probably best as a follow-up.

Here is how it looks now with the MR:

🇬🇧United Kingdom scott_euser

scott_euser made their first commit to this issue’s fork.

🇬🇧United Kingdom scott_euser

This continues to work well for us, would be great if this one can get merged in, Thank you!

🇬🇧United Kingdom scott_euser

Thanks! Would you mind dealing with crediting as well pls

🇬🇧United Kingdom scott_euser

The CSS is a bit beyond me, but in terms of testing this, here is before & after with Environment Indicator + Devel enabled for example. Thank you for your work on this!

Before (bleeding in as issue summary describes):

After (looks great):

🇬🇧United Kingdom scott_euser

That one is open here in case someone is able to contribute it :) https://www.drupal.org/project/footnotes/issues/3473262 Add the ability to hide the reference text in the CK Editor content editing Active

🇬🇧United Kingdom scott_euser

Not a css expert but I think you can try something like scroll margin top maybe.

🇬🇧United Kingdom scott_euser

Glad you figured it out!

🇬🇧United Kingdom scott_euser

Thanks for the work on this! Tests are failing, but I can also see the problem with back button is on all steps, not just the one. Thanks!

🇬🇧United Kingdom scott_euser

Couldn't get it to work with Select for now without schema issues, but Autocomplete better than status quo so going to merge. Test coverage added.

🇬🇧United Kingdom scott_euser

Gave this a retest

I can see with your latest #access changes, there are no additional controls or effort that existed when I first reviewed in #6, so looks good to me. Going to add a follow-up to add test coverage for translation as its not the first issue that has started as a result

Thanks both!

🇬🇧United Kingdom scott_euser

Leaving as needs review to get your thoughts, but RTBC+1 from me

🇬🇧United Kingdom scott_euser

Thanks very much for the work on this! Looks good to me! I didn't make any change other than labels/variable names, but worth a quick check if you have any major concerns @svendecabooter before I merge.

Beyond that added a very basic test coverage to this. Will add a follow-up issue to add test coverage for translation itself.

🇬🇧United Kingdom scott_euser

First question we need to ask is do we want skipped counts being set without enabled plugins to be considered 'TFA Enabled' or 'TFA Disabled' for the backend status field as that impacts our operations choice.

Maybe that is a separate issue as a follow-up: let the site builder decide with a setting, and provide a default for new installs + update hook to maintain status quo. Feels like for the scope of this issue the status quo should remain; if skip counts don't care if TFA is enabled or not, this issue should not chain that behaviour right?

🇬🇧United Kingdom scott_euser

Yep you're right, phpunit 11 sorry

🇬🇧United Kingdom scott_euser

... With an else on the latter in case ai search is disabled I guess

🇬🇧United Kingdom scott_euser

You did add a $data['backend'] == 'search_api_ai_search' when you originally added it, could this potentially be an outdated issue?

🇬🇧United Kingdom scott_euser

Personally I do not have any need for it, I cannot remember who/where this got raised - perhaps we postpone and they can chime in if its still required.

🇬🇧United Kingdom scott_euser

The idea is that AiVdbProviderInterface can be implemented in some other way than AI Search yet still be relied to actually make queries/searches e.g. for agent calls or other functionality so maybe we need something like this:

new src/Base/AiVdbProviderStandaloneClientBase.php:

abstract class AiVdbProviderStandaloneClientBase implements AiVdbProviderInterface, ContainerFactoryPluginInterface {
   ...
}

existing src/Base/AiVdbProviderClientBase.php:

if (interface_exists('\Drupal\ai_search\AiVdbProviderSearchApiInterface')) {
  abstract class AiVdbProviderClientBase extends AiVdbProviderStandaloneClientBase implements AiVdbProviderSearchApiInterface {
     ...
  }
}
🇬🇧United Kingdom scott_euser

Okay all green now

🇬🇧United Kingdom scott_euser

Sorry I know you have this assigned to you, but just taking a quick stab at it based on suspicion of problem, feel free to revert of course

🇬🇧United Kingdom scott_euser

Okay fixed it now; turns out install hook was outdated for vocabulary so there was incorrect default value getting set. Sorry I did revert your commit @sijumpk - required getting inherited when the element is marked as required in form API should be fine on the table because there should always be a default value. We could always deal with in a follow-up if there is a use-case where people don't want to provide a default prompt I suppose but at the moment that causes a new test failure.

So back to tests passing (beyond the warning that is across the board at the moment, which I commented at 🐛 Fix phpunit tests for Max Version Active the reason).

🇬🇧United Kingdom scott_euser

At the moment "phpunit (max PHP version)" fails because it attempts to install php-8.4.0.tar.xz from source yet "PHP 8.3.23" is the runtime. Max PHP version should be 8.4, not sure if its us or gitlab CI that is overriding that

🇬🇧United Kingdom scott_euser

Any console messages or something like that? The video looks like its extremely low pixel quality so not really possible to learn anything from it (or at least how it plays on my machine)

🇬🇧United Kingdom scott_euser

Fixed an issue with states not applying, but can't yet figure out what's wrong with the tests, the '$this->assertSession()->waitForText('New prompt details');' doesn't seem to be waiting for it to appear here:

In case anyone can spot the test change needed to get it to wait, otherwise will try to come back to this and get to the bottom of it

🇬🇧United Kingdom scott_euser

I think we should close in favour of 🐛 New user should be validated before save Needs work which is a duplicate it seems but has more engagement there. Feel free to disagree of course

🇬🇧United Kingdom scott_euser

Hmmm I'm not sure we should actually prevent validation. I tested this out and with required fields, its impossible to register via social auth as you hit these validation failures.

Instead without this patch we are having to do event subscriber KernelEvents::RESPONSE to check if

  1. user logged in
  2. route is not logout
  3. and user has violations (like the MR validates)

And if so, redirect to edit profile with warning message (and continue to force it until user has satisfied the violdations

If this route was to go ahead, at least it should be opt in via a settings form.

Marking as NW for discussion.

🇬🇧United Kingdom scott_euser

Okay updated info yml and composer json minimum versions, thanks!

🇬🇧United Kingdom scott_euser

I think maybe the verdict is still out on this https://www.drupal.org/project/drupal/issues/3067979#comment-16178128
Need to defer to other maintainers

NB Given prefer-source is an option major doesn't fit https://www.drupal.org/docs/develop/issues/fields-and-other-parts-of-an-... and similarly not really a bug per criteria there either particularly given its an opinionated decision.

🇬🇧United Kingdom scott_euser

scott_euser changed the visibility of the branch 3032517-views-uncontrolled-fields to hidden.

🇬🇧United Kingdom scott_euser

Actually this is already doable with InOperator too, reverting description, sorry for the noise!

🇬🇧United Kingdom scott_euser

I have tried to elaborate on this a bit more to make it more clear the use case and intent. Not sure the patch is right, as you can already set default selections in the default InOperator from core (which this extends). Really the only thing you cannot do is prevent control of particular fields (ie, where you want them required).

🇬🇧United Kingdom scott_euser

Okay and from there on your end you'll then create new branch as appropriate? Or do we do this in 2.1.x?

🇬🇧United Kingdom scott_euser

Will have a look, thanks for flagging!

🇬🇧United Kingdom scott_euser

Sure go for it, sounds good IMO. As long as it still fixes the issue if that's what the documentation recommends... Thanks!

🇬🇧United Kingdom scott_euser

Thanks for all the work on this and apologies for the delay. Keen to hear other opinions as I have been struggling to focus on this lately, but my general feeling is that we are repeating a lot both in AiVdbProviderClientBase/Interface + in the SearchApiAiSearchBackend.php

Looking here and at Make use of Milvus' Grouping functionality Active it seems both exclusion and grouping are both small modifications but we are making separate methods and repeating I guess to avoid breaking change, but maybe we are adding a lot of complexity to avoid BC while we are still able to, and maybe coordinated release lesser of two evils.

Then knowing that a VDB supports Grouping only means that the SearchApiAiSearchBackend needs to skip the iteration attempts when chunks are not wanted && grouping supported. And the exclude_entity_ids just added as a filter param if supported. Not actually sure if we need the supportsNotInFiltering() because there are plenty of things not supported by filtering in VDBs and ultimately if it is supported the VDB will get through the interation quicker to get the desired number of results.

Then we should be able to avoid 3 separate doSearch methods which have a lot of repetition and instead the supportsGrouping can just be what stops iteration, and we can always attempt to apply exclusions regardless of whether iteration happens or not. So hopefully results in a lot less code change in SearchApiAiSearchBackend.

I say this all without actually properly trying it, as perhaps it has been tried and its not doable. But in any case, first step I think is agreement together how much breaking change we are okay wtih

🇬🇧United Kingdom scott_euser

Added details about how we might work around it in case anyone is able to pick this up.

🇬🇧United Kingdom scott_euser

Okay I merged the compatibility with paste filter, and moved the compatibility with Word paste to a new issue. However it is still an issue as described there.

🇬🇧United Kingdom scott_euser

Okay I retested manually at least with LibreOffice and its successful. The test coverage pass (though these are only as close as I could get to a real paste scenario so are not 100% like real pasting). Still pasting from Office365 on a windows machine does not contain and footnote data. But in both the branch and in 4.0.x this is a problem so I will not let this block merging for compatibility with paste filter.

🇬🇧United Kingdom scott_euser

I think its the same but with less debug output, so I'll review the previous MR and hid that one. @astonvictor otherwise let me know if I missed something

🇬🇧United Kingdom scott_euser

scott_euser changed the visibility of the branch 3486079-pasting_ to hidden.

🇬🇧United Kingdom scott_euser

Yeah that sounds like a good plan re #6 thanks!

🇬🇧United Kingdom scott_euser

Just marking as NW since the patch no longer applies.

🇬🇧United Kingdom scott_euser

Confirmed, with this MR, the first name and last name of User entity get populated. Thanks!

🇬🇧United Kingdom scott_euser

So we should close this one though right?

🇬🇧United Kingdom scott_euser

Thanks! I think still somehow its too strict though. E.g. if I run

ddev exec -d /var/www/html "./vendor/bin/phpunit -c ./core/phpunit.xml.dist ./modules/contrib/tfa/tests/src/Unit/TfaContextTest.php"

At:

/var/www/html/modules/contrib/tfa/tests/src/Unit/TfaContextTest.php:430

I get false errors like

-    'stringTranslation' => MockObject_TranslationInterface_00404523 Object #398 (
-        '__phpunit_state' => PHPUnit\Framework\MockObject\TestDoubleState Object #433 (
+    'stringTranslation' => MockObject_TranslationInterface_3106f881 Object #2004 (
+        '__phpunit_state' => PHPUnit\Framework\MockObject\TestDoubleState Object #2006 (

Which are nearly the same and for the purposes of the test should be considered the same I believe

🇬🇧United Kingdom scott_euser

I'm sure its not right, but sort of proof of concept...

Bit beyond me as the code there is a little hard to follow how different scenarios get stored as user data in different forms

🇬🇧United Kingdom scott_euser

Okay back to needs review. Added a couple explanatory comments in case. Thanks!

🇬🇧United Kingdom scott_euser

I think first probably need more advice/opinions to help decide way forward here before putting more time into an MR

🇬🇧United Kingdom scott_euser

Hmmm I am not sure - is that what a user using a screen reader will want? If they come across a citation, would they want the flow of the text being read to be stopped to read out the reference? Ie, that is what this will do right? Instead of 1 2 3, it will read out the full reference.

Possibly it could be more desirable to read something like "Citation 1", "Citation 2". Whereas reading out the full reference is maybe better left to if the user decides to set specific focus on the anchor link to not interrupt the reading - then it would be aria-described-by right? Although harder to achieve here as there are multiple ways to output the references.

🇬🇧United Kingdom scott_euser

Makes sense; I updated the code. Rendering $value was breaking tests e.g. ::testCitationUniqueTextSameValue() but I can see its already running through Html::cleanCssIdentifier() if not is_numeric, so I believe that is safe. Did a tiny bit of scope creep to rename a variable to avoid confusion with the variable name being checked to auto-collapse multiple identical texts together.

🇬🇧United Kingdom scott_euser

Hi @prudloff,

I think what that comment is suggesting though is actually what we are doing; ie, rendering for elsewhere other than the page. We do this to collapse multiple footnotes together + create the ref_id (which people could anchor link to). If we instead do not render it, we could change the behaviour of either. The code in check_markup is ultimately doing the same thing, just also triggering Renderer::renderInIsolation() to get the string version earlier on. Nervous to otherwise cause further side effects for a fairly well used functionality.

Ie, we might change the behaviour of this bit

if ($this->settings['footnotes_collapse']) {
  $key = $this->getMatchingFootnoteKey($text);
}

If we e.g. switch to comparing the text_clean version (which still then at least requires that to be rendered early).

So I think its better to merge this and if you feel strongly that we should not render as early as we are currently doing, we can carry on in a follow-up.

Thanks,
Scott

Production build 0.71.5 2024