Recent comments

I found a workaround in my hook_ENTITY_TYPE_update() which just stops the recursion

  $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
  array_unshift($backtrace);
  foreach ($backtrace as $trace) {
    if (isset($trace['function']) && $trace['smallads_group_smallad_update'] === $currentFunction) {
      return;
    }
  }

McNasty!

Thanks for asking.
My field is actually a basefield, not a field API field. I don't know if that makes a difference.

    $fields['categories'] = BaseFieldDefinition::create('entity_reference')
      ->setLabel(t('Category'))
      ->setDescription(t('The category or categories of the ad.'))
      ->setSetting('target_type', 'taxonomy_term')
      ->setSetting('handler', 'default:taxonomy_term')
      ->setSetting('handler_settings', ['target_bundles' => ['categories']])
      ->setRequired(TRUE)
      ->setCardinality(3)
      ->setTranslatable(TRUE)
      ->setDisplayConfigurable('view', TRUE);

That's all the extra information I can think of right now.

Update:
I also found the group content menu but it seemed over complicated and i couldn't make it work. In any case I'm not looking for a menu with links to content but links to actions.
So then I found the group operations block which doesn't work as expected but might be good enough.
I also researched into how one might make a token that could be put into a menu link path like
/group//members
where the menu item would only show in a group context, and the would be replaced by the current group ID OR the link would redirect to the current group. However I couldn't work out how to do this.

I'm working with the module now and seems to me that custom node is needed in order to make menu links that reference the .
Seems pretty important to me.
I don't know how I would go about it.
How about a new menu called 'group' which provides links to ordinary group members to :
- view members
- view content (by type)
- add content (by type)
- manage membership
The menu would be defined as a config item in config/install
The menu links, each pointing to its own class would be defined in the group.links.menu.yml
Would this not be a great addition to the module?

Hopefully that means the problem is fixed.
The patch not working is not a bug because nothing breaks.
The purpose of the patch was to resolve a problem with views config schema, particularly for views with a filter on transaction->state which is an enum field. It was stopping the view from being saved and translated.
For now I'll just put a note in the composer file and remove it later.

ok I think the reason I couldn't grep the path was because it is bound up with the entity link templates.
I've now added a translation and found it auto translated.
This still seems like semi-automatic though.
Is there a way to auto translate automatically whenever the main language content is changed?

Sorry I don't know which module you mean with 'translation from core'
If auto_translation depends on a core module it should be listed as a dependency in auto_translation.info.yml
I grepped again and I still can't find where the translations/add path is declared.

Please state full requirements for the spam deletion.
What page does it work on, is it a views bulk operation as mlncn suggested, or a cron job acting on certain donations.
What configuration is required?

Now I looked properly.
The way to make a one-time donation option on the form is to set the frequency to 0.
I've added a note at the bottom of the widget.

I found this issue.
It was because the name field was being populated automatically from the current user.
checkout HEAD

If you want to offer some money I will find time for this.

I've never seen a spam donation.
In any case even if it's one cent only, you probably don't want to delete them because you want them to match up with the other records.
When you view them, it might be better to filter by min amount.

I see the problem, yes.
The "create" form gives preset recurring options and no way to remove them.
When I remove them directly in config, then the form doesn't submit properly.
This is gonna take someone a couple of hours to sort out.

This same problem of not extracting config seems to happen on localize.drupal.org, which has I believe been the case for years.
So there's probably something I'm missing.

I'm having a similar issue although it looks like the InvalidParameterException has been fixed.
Now the base path is simply ignored as if the value were ''

If I try to redirect in an hook_form_group_relationship_form_alter hook, my redirect is overwritten.
Method GroupRelationshipForm::Save is should check for existing redirects before overwriting them

  if (!$form_state->getRedirect()) {
    if ($group_relationship->access('view')) {
      $form_state->setRedirectUrl($group_relationship->toUrl());
    }
      etc...

I had this problem after upgrading from v2 to v3, but not when installing v2 fresh.
This and another problem with views, made me realise that quite a bit of upgrade code is needed to compensate for the change of entity name from group_content to group_relationship.

Here is a fixed group_nodes view

uuid: 4c27da85-1f92-4a05-a203-c51b64d562f4
langcode: en
status: true
dependencies:
  module:
    - gnode
    - group
    - node
_core:
  default_config_hash: gaGmFmRD44_m6vknBrbshxFCgsNUoxifIJvjd2Q-d5I
id: group_nodes
label: 'Group nodes'
module: gnode
description: 'Lists all of the nodes that have been added to a group.'
tag: ''
base_table: node_field_data
base_field: nid
display:
  default:
    id: default
    display_title: Master
    display_plugin: default
    position: 0
    display_options:
      title: Nodes
      fields:
        title:
          id: title
          table: node_field_data
          field: title
          relationship: none
          group_type: group
          admin_label: ''
          entity_type: node
          entity_field: title
          plugin_id: field
          label: Title
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: false
            ellipsis: false
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          click_sort_column: value
          type: string
          settings:
            link_to_entity: true
          group_column: value
          group_columns: {  }
          group_rows: true
          delta_limit: 0
          delta_offset: 0
          delta_reversed: false
          delta_first_last: false
          multi_type: separator
          separator: ', '
          field_api_classes: false
        type:
          id: type
          table: node_field_data
          field: type
          relationship: none
          group_type: group
          admin_label: ''
          entity_type: node
          entity_field: type
          plugin_id: field
          label: 'Content type'
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          click_sort_column: target_id
          type: entity_reference_label
          settings:
            link: false
          group_column: target_id
          group_columns: {  }
          group_rows: true
          delta_limit: 0
          delta_offset: 0
          delta_reversed: false
          delta_first_last: false
          multi_type: separator
          separator: ', '
          field_api_classes: false
        status:
          id: status
          table: node_field_data
          field: status
          relationship: none
          group_type: group
          admin_label: ''
          entity_type: node
          entity_field: status
          plugin_id: field
          label: Status
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          click_sort_column: value
          type: boolean
          settings:
            format: custom
            format_custom_false: Unpublished
            format_custom_true: Published
          group_column: value
          group_columns: {  }
          group_rows: true
          delta_limit: 0
          delta_offset: 0
          delta_reversed: false
          delta_first_last: false
          multi_type: separator
          separator: ', '
          field_api_classes: false
        changed:
          id: changed
          table: node_field_data
          field: changed
          relationship: none
          group_type: group
          admin_label: ''
          entity_type: node
          entity_field: changed
          plugin_id: field
          label: Updated
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          click_sort_column: value
          type: timestamp
          settings:
            date_format: short
            custom_date_format: ''
            timezone: ''
            tooltip:
              date_format: ''
              custom_date_format: ''
            time_diff:
              enabled: false
              future_format: '@interval hence'
              past_format: '@interval ago'
              granularity: 2
              refresh: 60
          group_column: value
          group_columns: {  }
          group_rows: true
          delta_limit: 0
          delta_offset: 0
          delta_reversed: false
          delta_first_last: false
          multi_type: separator
          separator: ', '
          field_api_classes: false
        view_group_relationship:
          id: view_group_relationship
          table: group_relationship
          field: view_group_relationship
          relationship: group_relationship
          group_type: group
          admin_label: ''
          entity_type: group_relationship
          plugin_id: entity_link
          label: View
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          text: view
          output_url_as_text: false
          absolute: false
        edit_group_relationship:
          id: edit_group_relationship
          table: group_relationship
          field: edit_group_relationship
          relationship: group_relationship
          group_type: group
          admin_label: ''
          entity_type: group_relationship
          plugin_id: entity_link_edit
          label: Edit
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          text: edit
          output_url_as_text: false
          absolute: false
        delete_group_relationship:
          id: delete_group_relationship
          table: group_relationship
          field: delete_group_relationship
          relationship: group_relationship
          group_type: group
          admin_label: ''
          entity_type: group_relationship
          plugin_id: entity_link_delete
          label: Delete
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          text: delete
          output_url_as_text: false
          absolute: false
        edit_node:
          id: edit_node
          table: node
          field: edit_node
          relationship: none
          group_type: group
          admin_label: 'Edit node link'
          entity_type: node
          plugin_id: entity_link_edit
          label: 'Link to edit Content'
          exclude: true
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          text: 'Edit node'
        delete_node:
          id: delete_node
          table: node
          field: delete_node
          relationship: none
          group_type: group
          admin_label: 'Delete node link'
          entity_type: node
          plugin_id: entity_link_delete
          label: 'Link to delete Content'
          exclude: true
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          text: 'Delete node'
        dropbutton:
          id: dropbutton
          table: views
          field: dropbutton
          relationship: none
          group_type: group
          admin_label: ''
          plugin_id: dropbutton
          label: Operations
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          destination: true
          fields:
            view_group_content: view_group_content
            edit_group_content: edit_group_content
            delete_group_content: delete_group_content
            edit_node: edit_node
            delete_node: delete_node
            title: '0'
            type: '0'
            status: '0'
            changed: '0'
      pager:
        type: full
        options:
          offset: 0
          items_per_page: 50
          total_pages: null
          id: 0
          tags:
            next: ››
            previous: ‹‹
            first: '« First'
            last: 'Last »'
          expose:
            items_per_page: false
            items_per_page_label: 'Items per page'
            items_per_page_options: '5, 10, 25, 50'
            items_per_page_options_all: false
            items_per_page_options_all_label: '- All -'
            offset: false
            offset_label: Offset
          quantity: 9
      exposed_form:
        type: basic
        options:
          submit_button: Apply
          reset_button: false
          reset_button_label: Reset
          exposed_sorts_label: 'Sort by'
          expose_sort_order: true
          sort_asc_label: Asc
          sort_desc_label: Desc
      access:
        type: group_permission
        options:
          group_permission: 'access group_node overview'
      cache:
        type: tag
        options: {  }
      empty:
        area_text_custom:
          id: area_text_custom
          table: views
          field: area_text_custom
          relationship: none
          group_type: group
          admin_label: ''
          plugin_id: text_custom
          empty: true
          content: 'No content available.'
          tokenize: false
      sorts: {  }
      arguments:
        gid:
          id: gid
          table: group_relationship_field_data
          field: gid
          relationship: group_relationship
          group_type: group
          admin_label: ''
          entity_type: group_content
          entity_field: gid
          plugin_id: numeric
          default_action: 'access denied'
          exception:
            value: all
            title_enable: false
            title: All
          title_enable: true
          title: '{{ arguments.gid|placeholder }} nodes'
          default_argument_type: fixed
          default_argument_options:
            argument: ''
          default_argument_skip_url: false
          summary_options:
            base_path: ''
            count: true
            override: false
            items_per_page: 25
          summary:
            sort_order: asc
            number_of_records: 0
            format: default_summary
          specify_validation: false
          validate:
            type: none
            fail: 'not found'
          validate_options: {  }
          break_phrase: false
          not: false
      filters:
        status:
          id: status
          table: node_field_data
          field: status
          relationship: none
          group_type: group
          admin_label: ''
          entity_type: node
          entity_field: status
          plugin_id: boolean
          operator: '='
          value: '1'
          group: 1
          exposed: true
          expose:
            operator_id: ''
            label: 'Published status'
            description: ''
            use_operator: false
            operator: status_op
            identifier: status
            required: true
            remember: false
            multiple: false
            remember_roles:
              authenticated: authenticated
              anonymous: '0'
              administrator: '0'
              group_admin: '0'
          is_grouped: true
          group_info:
            label: 'Published status'
            description: ''
            identifier: status
            optional: true
            widget: select
            multiple: false
            remember: false
            default_group: All
            default_group_multiple: {  }
            group_items:
              1:
                title: Published
                operator: '='
                value: '1'
              2:
                title: Unpublished
                operator: '='
                value: '0'
        type:
          id: type
          table: node_field_data
          field: type
          relationship: none
          group_type: group
          admin_label: ''
          entity_type: node
          entity_field: type
          plugin_id: bundle
          operator: in
          value: {  }
          group: 1
          exposed: true
          expose:
            operator_id: type_op
            label: Type
            description: ''
            use_operator: false
            operator: type_op
            identifier: type
            required: false
            remember: false
            multiple: false
            remember_roles:
              authenticated: authenticated
              anonymous: '0'
              administrator: '0'
              group_admin: '0'
            reduce: false
          is_grouped: false
          group_info:
            label: ''
            description: ''
            identifier: ''
            optional: true
            widget: select
            multiple: false
            remember: false
            default_group: All
            default_group_multiple: {  }
            group_items: {  }
      style:
        type: table
        options:
          grouping: {  }
          row_class: ''
          default_row_class: true
          columns:
            title: title
            type: type
            status: status
            changed: changed
            view_group_content: view_group_content
            edit_group_content: edit_group_content
            delete_group_content: delete_group_content
            edit_node: edit_node
            delete_node: delete_node
            dropbutton: dropbutton
          default: changed
          info:
            title:
              sortable: true
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            type:
              sortable: true
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            status:
              sortable: false
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            changed:
              sortable: true
              default_sort_order: desc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            view_group_content:
              sortable: false
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            edit_group_content:
              sortable: false
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            delete_group_content:
              sortable: false
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            edit_node:
              sortable: false
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            delete_node:
              sortable: false
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            dropbutton:
              sortable: false
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
          override: true
          sticky: true
          summary: ''
          empty_table: true
          caption: ''
          description: ''
      row:
        type: fields
        options:
          default_field_elements: true
          inline: {  }
          separator: ''
          hide_empty: false
      query:
        type: views_query
        options:
          query_comment: ''
          disable_sql_rewrite: false
          distinct: false
          replica: false
          query_tags: {  }
      relationships:
        group_relationship:
          id: group_relationship
          table: node_field_data
          field: group_relationship
          relationship: none
          group_type: group
          admin_label: 'Content group relationship'
          entity_type: node
          plugin_id: group_relationship_to_entity_reverse
          required: true
          group_relation_plugins: { }
      header: {  }
      footer: {  }
      display_extenders: {  }
    cache_metadata:
      max-age: -1
      contexts:
        - 'languages:language_content'
        - 'languages:language_interface'
        - route.group
        - url
        - url.query_args
        - user.group_permissions
        - 'user.node_grants:view'
      tags: {  }
  page_1:
    id: page_1
    display_title: Page
    display_plugin: page
    position: 1
    display_options:
      display_extenders: {  }
      path: group/%group/nodes
      menu:
        type: tab
        title: Nodes
        description: ''
        weight: 25
        enabled: true
        expanded: false
        menu_name: main
        parent: ''
        context: '0'
    cache_metadata:
      max-age: -1
      contexts:
        - 'languages:language_content'
        - 'languages:language_interface'
        - route.group
        - url
        - url.query_args
        - user.group_permissions
        - 'user.node_grants:view'
      tags: {  }

This is because the name of the group_content entity has changed to group_relationship and now the default views are broken.
- Edit the view.
- replace the broken relationship
- replace the fields that depend on that relationships

Do you mean to create an insider AND outsider admin role?
The problem is admins may or may not be inside the group.
I can do this but creating an admin role for each case doesn't feel like a 'proper' solution.

thanks I'd rather have composer pull it in and manage it in place than manage its absence in composer.

Trying to use your composer file @jon-pugh
"The `url` supplied for the path (../../../devmaster) repository does not exist"

I just got this with php 8.1.27 and eu_cookie_compliance 1.x-dev
Deprecated function: preg_quote(): Passing null to parameter #1 ($str) of type string is deprecated in Drupal\Core\Path\PathMatcher->matchPath() (line 80 of /srv/web/aegir/platforms/cforge/web/core/lib/Drupal/Core/Path/PathMatcher.php)

#0 /srv/web/aegir/platforms/cforge/web/core/includes/bootstrap.inc(347): _drupal_error_handler_real()
#1 [internal function]: _drupal_error_handler()
#2 /srv/web/aegir/platforms/cforge/web/core/lib/Drupal/Core/Path/PathMatcher.php(80): preg_quote()
#3 /srv/web/aegir/platforms/cforge/web/modules/eu_cookie_compliance/eu_cookie_compliance.module(849): Drupal\Core\Path\PathMatcher->matchPath()
#4 /srv/web/aegir/platforms/cforge/web/core/lib/Drupal/Core/Extension/ModuleHandler.php(562): eu_cookie_compliance_js_alter()

The location according to admin/reports/dblog was /core/install.php/?rewrite=ok
which was called by a bot, no doubt.
No wonder you couldn't find it!

I dont' know how all this forking works but I've pushed the fix which is to add
->accessCheck(TRUE)
in DonationListBuilder.php
SO its now in HEAD

Sorry I just realised Drupal itself supports the 'hidden' class.
I had some other css overriding it.

I'm marking this as major because it was removing my canonical_url tag and google was complaining.
Also the fix has been available for 3 years.

Please make me an offer of money or disable the check option with css or a form_alter hook.

function give_update_9001 is present in file give.install in beta3
I don't know under exactly what conditions that function would run when you run update.php - maybe if you upgraded from beta2 to drupal10 the system would miss it. Maybe it is good practice to update to the latest version of all modules before doing the core upgrade.
Anyway if you have devel_php module you can copy the code from that function and run it in the devel box.
Hope that helps.

check out the give module.
https://drupal.org/project/give/
It's a bit clunky and it is certainly not a full platform, but does handle the payment parts with stripe.
Mutual Credit is only for non-money accounting between members.

dynamic entity reference is removed from the latest version.
That means from now only user entities can hold wallets.

yep this is a work in progress
I'm struggling to understand those tags, but
"credit-commons/cc-node": "0.8.x-dev"
seems to work for now.
I've just pushed this...

This is now urgent because composer won't even fetch the module until it is marked for drupal 10, and I can't find a workaround

This is a bug arising from a moment when I moved the decimal places in the database.
I fixed it in give.install function give_update_9001() which replaces the amount field.
Is it possible you forgot to run the updates?

The problem is the naming of the xml file as it is generated.
In GISController.php

$filename = 'google_image_sitemap_' . $result->node_type . '.xml';

should be replaced by
$filename = 'sitemap_' . $result->node_type . '.xml';

In your patch you have used $this inside static functions, so it will break.
That is why I did not convert these t() calls.
If there is another way to call t() from inside a static function please let me know.

I realised this is an issue with the schema_metatag module and it is already handled there

Google amp validator seems to want absolute urls in the

tags. For example: <script src="//cdn.ampproject.org/v0.js" async></script> is invalid but <script src="https://cdn.ampproject.org/v0.js" async></script> is valid. This is a show-stopped. Seems to be a normal behaviour of drupal libraries to render it that way even when the protocol is stated.
js:
    https://cdn.ampproject.org/v0.js: { type: external, minified: true, attributes: { async: true } }

I think the problem here is simply that the settings form does not clear the cache.
When the block is built it should declare it's dependency on the block settings.
So in a module hook it can be done like this.

/**
 * Implements hook_block_view_BASE_BLOCK_ID_alter()
 */
function my_module_block_view_bootstrap_simple_carousel_block_alter(array &$build, \Drupal\Core\Block\BlockPluginInterface $block) {
  $build['#cache'] = [
    'tags' => $build['#block']->getCacheTags(),
  ];
}

but better still, in this module's block plugin Drupal\bootstrap_simple_carousel\Plugin\Block\CarouselBlock::build() should just include this:

    $build = [
      '#items' => $this->getCarouselItems(),
      '#settings' => $this->moduleSettings,
      '#theme' => 'bootstrap_simple_carousel_block',
      '#cache' => [
        'tags' => $this->moduleSettings->getCacheTags(),
      ],
    ];

Thanks composer is working in other contexts so I've been able to progress.

Thanks I didn't realise the js library was not installed.
I can install chosen via drush
I'm not sure if this operation applies to individual sites or to a whole platform.
The 'chosenplugin' command completes without giving any details.
Because I am installing and running many similar sites on the same platform, I need this operation fully automated, either by a line in the installation profile (if it is required per site) or via composer (it is required per platform)
Can you advise further?
Thanks?

Production build 0.71.5 2024