Announcing M8s: A toolkit for ephemeral environments
Today we are open sourcing m8s (Pronounced just like the thoroughly Australian "Mates"), our tool for building temporary environments as part of our pull request build process.
Today we are open sourcing m8s (Pronounced just like the thoroughly Australian "Mates"), our tool for building temporary environments as part of our pull request build process.
Its extremely important to have default values that you can rely on for local Drupal development, one of those is "localhost". In this blog post we will explore what is required to make our local development environment appear as "localhost".
From time to time you may find you need to extend another module's plugins to add new functionality.
You may also find you need to alter the signature of the constructor in order to inject additional dependencies.
However plugin constructors are considered internal in Drupal's BC policy.
So how do you safely do this without introducing the risk of breakage if things change.
In this article we'll show you a quick trick learned from Search API module to avoid this issue.
Services like dialogflow (formerly api.ai) do a much better job of natural language parsing (NLP) if they're aware of your entity names in advance.
For example, it can recognize that show me the weather in Bundabergis a request for weather in Bundaberg, if you've told it ahead of time that Bundaberg is a valid value for the City entity.
Having the entity values automatically update in your service of choice when they're created and changed in Drupal makes this much more efficient.
This article will show you how to achieve that.
In this week's Lightning talk, I go through a case study on an investigation into Deadlocks and Render caching and why cache contexts are so important to get right. Check out the video below to find out how we were able to withstand 10x the throughput with smarter caching.
In a recent project, we were outputting CSV and wanted to test that the file contents were valid.
Read on for a quick tip on how to achieve this with Drupal 10's BrowserTestBase
Last week I was fortunate enough to attend and deliver a session at DrupalCon Vienna. The session was based around leveraging and getting productive with the automated testing tools we use in the Drupal community.
Conversational UIs are the next digital frontier.
And as always, Drupal is right there on the frontier, helping you leverage your existing content and data to power more than just web-pages.
Want to see it action - click 'Start chatting' and chat to our Drupal site.
In this post, we will show the pain points of running Xdebug in a Docker local development environment and how we overcame them.
When you are working with a team of developers on a medium to large sized project, managing the changes between a number of git branches can become a complex task. Sometimes you don't want to merge a whole branch into another, and only need to pick one or two specific commits. This process is called 'cherry picking'.
We're starting up our Lightning talks again during our weekly developer meetings here at PreviousNext. This week was about wiring up a straight forward plugin.js and extending CKEditorPluginBase to create a custom CKEditor widget in Drupal 8.
Watch the video for a run through of how this is done in Drupal 8.
This week whilst trying to update one of our projects to the latest version of Drupal 8 core, we had some issues.
We use Composer to manage our dependencies, modules etc, and on this particular occasion, things weren't straightforward.
In order to solve it, we had to use some of the lesser known features of Composer, so decided to share.