WI, USA
Account created on 12 December 2012, almost 13 years ago
#

Merge Requests

More

Recent comments

🇺🇸United States mglaman WI, USA

Added to the merge train! Thanks

🇺🇸United States mglaman WI, USA

I don't think this is really postponed on needing more info if the concern is BC.

Fixing the description is a workaround. But 🐛 Improve 'administer content' permission description Needs work is much more verbose. I guess we could link and close this as a dupe. But fixing the description does not fix this issue.

🇺🇸United States mglaman WI, USA

Thanks! Merge train ahead

🇺🇸United States mglaman WI, USA

Tried to rebase via the UI and it failed on conflicts, otherwise good to go

🇺🇸United States mglaman WI, USA

On my side it is not enough when css aggregation is ON.

Ah! I forgot to mention we currently have CSS aggregation off due to early conflicts w/ Experience Builder (now Canvas) and I haven't re-tested with it on in a while.

🇺🇸United States mglaman WI, USA

Read it over. Looks good to me! I like that we're getting the Composer binary path from within it's vendor directory versus vendor/bin/composer.

🇺🇸United States mglaman WI, USA

chatted w/ phenaproxima and I understand the problem, now.

Sometimes after running an update, the cache becomes corrupted and has to be cleared.

This confused me. It's not _update_ as in Drupal database updates but dependency updates. A module is update which has modified it's service constructors. Drupal is still using a previous container cache for the previous version of the module. When the user goes to their Drupal site, the container constructs the services using previous arguments and we WSOD.

📌 Use a better container cache key Active solves this by using dependency version information to vary the container cache. So I think Drupal CMS can provide a Composer script which _kind of_ does the same thing. Without calling `drupal_rebuild`. When calling `drupal_rebuild` all caches get destroyed, which can be bad ahead of actually running updates.

Instead it should have a script which does clears the container cache only. This can be done via drush cc container or a PHP script like:

$autoloader = require_once __DIR__ . '/autoload.php';
$request = Request::createFromGlobals();
$kernel = new DrupalKernel('prod', $class_loader);
$kernel->setSitePath(DrupalKernel::findSitePath($request));
$kernel->invalidateContainer();
🇺🇸United States mglaman WI, USA

Chiming in that we've been using a patch for this since March 11th.

diff --git a/gin.libraries.yml b/gin.libraries.yml
index 45f93acd..b1212444 100644
--- a/gin.libraries.yml
+++ b/gin.libraries.yml
@@ -14,7 +14,7 @@ gin_base:
       dist/css/theme/variables.css: { minified: false }
   dependencies:
     - gin/tabs
-    - gin/dialog
+    - gin/gin_dialog
     - gin/status

 # Legacy
@@ -165,7 +165,6 @@ gin_dialog:
       dist/css/theme/dialog.css: { minified: false }
   dependencies:
     - gin/dialog
-    - gin/gin_base
     - gin/gin_accent

 gin_description_toggle:

Although I haven't exactly tested without the patch in a while.

🇺🇸United States mglaman WI, USA

Looks like I missed this issue when merging #3180737: Add path_alias module as dependency. :/. I'll make sure to save credit since it was my mistake to not credit before and merge issues.

🇺🇸United States mglaman WI, USA

Sorry, didn't catch the fail on type hinted constants breaking previous major

🇺🇸United States mglaman WI, USA

LGTM. Basically this allows redirects to always return their value and not a 404, which is how external redirects work anyway

🇺🇸United States mglaman WI, USA

mglaman changed the visibility of the branch 3111456-resolve-langcode-issue to active.

🇺🇸United States mglaman WI, USA

given this actually works on the old redirect repository as we're only passing in an extra parameter.

oh, I didn't test so I thought it was a breaking change. so it's basically backwards compatible? I see, `findMatchingRedirect` added cacheability. And for folks who don't upgrade we lose the cacheability because we no longer do this, correct?

    // If there is a response object, add the cacheability metadata necessary
    // for the traced URLs.
    array_walk($traced_urls, function ($traced_url) use ($response) {
      $response->addCacheableDependency($traced_url);
    });
🇺🇸United States mglaman WI, USA

LGTM if OK changing -dev requirement to ai -dev

🇺🇸United States mglaman WI, USA

That's because the namespace is `january_theme` but the code is `january`. See https://git.drupalcode.org/project/january_theme

We assume the project namespace matches the code in the theme/module.

🇺🇸United States mglaman WI, USA
10 | WARNING | Interface names should always have the suffix "Interface"
    |         | (Drupal.Classes.InterfaceName.InterfaceSuffix)

Didn't read phpcs fail, turns out coding standards dictated the answer.

🇺🇸United States mglaman WI, USA

I'll set this to 1.2.x, since I can't see any reasons that this would be a breaking change?

Yeah nothing should break. The interface isn't adding methods at all.

🇺🇸United States mglaman WI, USA

I'll try to do some more debugging vs just reading calls from the Blackfire graph and report back. We also have several Metatag contrib running.

🇺🇸United States mglaman WI, USA

Left a review. I don't love the approach as sites could easily be in a broken state since we can't bump redirect. There's no peerDependency type declaration we could provide

🇺🇸United States mglaman WI, USA

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

🇺🇸United States mglaman WI, USA

So 🌱 Guidelines for semantic versioning and Drupal core support Active led to https://www.drupal.org/docs/develop/managing-a-drupalorg-theme-module-or... and technically we should do a minor release if dropping 9.x.

🤷‍♂️ although does the minor version mean anything if we merge onto 2.x and just tag 2.1.0? It's not like we're supporting 2.0.x in any true fashion and backporting fixes.

D9 is long gone that I'm +1 to doing this in a patch release.

🇺🇸United States mglaman WI, USA

We're adding extra libraries to the editor using KernelEvents::RESPONSE => ['onRespond', 50] for $route_name === 'entity.xb_page.edit_form' || $route_name === 'experience_builder.experience_builder' and:

        $response->addAttachments([
          'library' => [
            'module/our-library',
          ],
        ]);
🇺🇸United States mglaman WI, USA

I've had better luck with Playwright by using their sharding over multiple jobs. We have multiple jobs and pass `--shard=1/3` or `--shard=2/3`, etc to each. Then Playwright knows how to chunk the tests.

We've also used some tagging for specific tests as well, like `--grep=@multilingual`. But then other jobs need `--grep-invert=@multilingual`

🇺🇸United States mglaman WI, USA

Thank you for the work! Left a review

🇺🇸United States mglaman WI, USA

@narendrar ah yeah, I see. I was getting that exception. But the problem is that there are so many AI module exceptions without a way of knowing it is an AI module one without tracking each. I opened Provide an exception interface all exceptions implement Active so it'd be easier to catch this.

I'm guessing we should just always return the exception message regardless. We're not stable yet. Dispatch AiExceptionEvent when a provider throws an exception Active is a feature request I made that allows third parties to customize exception messages handled by integrations like XB AI.

🇺🇸United States mglaman WI, USA

Merged, thanks!

🇺🇸United States mglaman WI, USA

This would be great for OpenAPI documentation and other JSON schema documentation generation of entities beyond Views.

🇺🇸United States mglaman WI, USA

which is not very helpful in this scenario.

How isn't it very helpful?

🇺🇸United States mglaman WI, USA

@mglaman: that screenshot in the issue summary, which route is that for, and for how big of a component tree is it?

It was the GET on experience_builder.api.layout.get. The tree wasn't huge, maybe 12 components with various nested slots.

🇺🇸United States mglaman WI, USA

It isn't too expensive, but this does help avoid a call to the cache backend from the access policy variation cache. Thanks for the merge!

🇺🇸United States mglaman WI, USA

https://github.com/simplytestme/website/pull/502 fixed commerce

https://github.com/simplytestme/website/pull/503 will fix Drupal CMS

I don't think the default content is being imported properly, but they are building.

I'll close this and continue investigating.

🇺🇸United States mglaman WI, USA

🐛 Simplytest.me fail on umami Active fixed Umami and others not having and installed DB.

Starshot needs to move to Drupal CMS

Commerce needs stability flag fix

🇺🇸United States mglaman WI, USA

The base preview has `echo "memory_limit = 512M" >> /usr/local/etc/php/conf.d/my-php.ini`. which looks like it's being used.

This will fix it: https://github.com/simplytestme/website/pull/501, tested locally

🇺🇸United States mglaman WI, USA

This is merged, should be available for new previews in ~10 minutes!

🇺🇸United States mglaman WI, USA

Okay, now it failed on

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 5242880 bytes) in /var/lib/tugboat/stm/vendor/symfony/http-foundation/Response.php on line 15
Command Failed (Tugboat Error 1064): Exit code: 255; Command: cd ${DOCROOT} && ../vendor/bin/drush si demo_umami --db-url=mysql://tugboat:tugboat@mysql:3306/tugboat --account-name=admin --account-pass=admin -y

Which is why we passed php -d memory_limit to Drush

🇺🇸United States mglaman WI, USA

We can, I'll add it as part of the builds. Sorry it took so long, but I have a PR up and closing as a upde for 🐛 Cannot manually test Commerce due to bcmath extension Needs review

🇺🇸United States mglaman WI, USA

Ah this is caused by invoking Drush with `php`

🇺🇸United States mglaman WI, USA

I wonder if this was a hiccup on Tugboat end. Because email capture is part of the platform. Seeing Tugboat Error 1064 makes me think that is the case. See https://docs.tugboatqa.com/building-a-preview/preview-deep-dive/inside-a...

It seems like things are OK now

🇺🇸United States mglaman WI, USA

This specifically needs to be handled in \Drupal\simplytest_projects\CoreVersionManager::updateData

Guzzle has \GuzzleHttp\RetryMiddleware has via \GuzzleHttp\Middleware::retry just need to register as http_client_middleware

🇺🇸United States mglaman WI, USA

All right! https://github.com/simplytestme/website/pull/496 should install theme module dependencies when its the main project or an additional project once merged

🇺🇸United States mglaman WI, USA

Came up with an idea to get install theme modules first: https://github.com/simplytestme/website/pull/496

Will test manually on Sunday

🇺🇸United States mglaman WI, USA

Okay, now I underatand. `../vendor/bin/drush theme:enable` doesn't enable dependencies. The theme depends on the modules being installed.

Updating dependencies
Lock file operations: 4 installs, 0 updates, 0 removals
  - Locking drupal/bootstrap (3.38.0)
  - Locking drupal/jquery_ui (1.7.0)
  - Locking drupal/jquery_ui_draggable (2.1.0)
  - Locking drupal/jquery_ui_resizable (2.1.0)

they are definitely present.

🇺🇸United States mglaman WI, USA

Okay this is actually part of a lingering quirk I never solved: where a module has multiple major versions supported by a major version of Drupal core. Fix incoming: https://github.com/simplytestme/website/pull/494

That's just for 5.x not showing in latest, though. Need to see why 3.x failed to build.

🇺🇸United States mglaman WI, USA

Could this have anything to do with the fact that 3.x releases are tagged with an 8.x- prefix and 5.x releases are not?

That's my thought. But I'm pretty sure we support semver and legacy versioning. Just for some reason. It's been 4 years since I touched this specific code (!!) so my brain is rusty

🇺🇸United States mglaman WI, USA

Weird, the 3.x branch has those dependencies in composer.json. Also, weird, 5.0.2 isn't at the top of the list. It should be at the top of "Latest" not in other releases.

🇺🇸United States mglaman WI, USA

I think the old version stored each launch and log in the database, and that's what allowed this feature. However, clicking back _should_ have gone to '/tugboat/progress/{instance_id}/{job_id}' to show the job log as long as the preview exists in Tugboat.

I'm workin on other maintenance and will see how we can bring this back.

Production build 0.71.5 2024