<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>drupal planet</title><description/><link>https://kevinquillen.com</link><language>en</language><item><title>Rebuilding Netlify from Drupal</title><link>https://kevinquillen.com/rebuilding-netlify-drupal</link><guid isPermaLink="false">386 at https://kevinquillen.com</guid><description>
&lt;span property=&quot;schema:name&quot;&gt;Rebuilding Netlify from Drupal&lt;/span&gt;

            &lt;div property=&quot;schema:text&quot; class=&quot;text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item&quot;&gt;&lt;p&gt;I&apos;ve recently taken up maintainership of the &lt;a href=&quot;https://www.drupal.org/project/netlify&quot;&gt;Netlify&lt;/a&gt; module for Drupal. This module helps bridge the gap between rebuilds and syncing changes that happen in Drupal to ensure your connected Netlify site correctly reflects that data, which is useful for avoiding certain aggressive caching scenarios with Next.js when it stubbornly refuses to refresh. Saving config, content or manually triggering a build will update the site.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.drupal.org/project/netlify&quot;&gt;https://www.drupal.org/project/netlify&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
      
&lt;span rel=&quot;schema:author&quot;&gt;&lt;span lang about=&quot;https://kevinquillen.com/user/1&quot; typeof=&quot;schema:Person&quot; property=&quot;schema:name&quot; datatype&gt;Kevin&lt;/span&gt;&lt;/span&gt;

&lt;span property=&quot;schema:dateCreated&quot; content=&quot;2024-09-09T14:39:45+00:00&quot;&gt;&lt;time datetime=&quot;2024-09-09T10:39:45-04:00&quot; title=&quot;Monday, September 9, 2024 - 10:39&quot;&gt;September 9th, 2024&lt;/time&gt;
&lt;/span&gt;
</description><pubDate>Mon, 09 Sep 2024 14:39:45 GMT</pubDate><dc:creator>Kevin</dc:creator></item><item><title>Update on List field data integrity issues in Drupal 10.2</title><link>https://kevinquillen.com/update-list-field-data-integrity-issues-drupal-102</link><guid isPermaLink="false">380 at https://kevinquillen.com</guid><description>
&lt;span property=&quot;schema:name&quot;&gt;Update on List field data integrity issues in Drupal 10.2&lt;/span&gt;

            &lt;div property=&quot;schema:text&quot; class=&quot;text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item&quot;&gt;&lt;p&gt;Last week I &lt;a href=&quot;https://kevinquillen.com/fixing-list-text-field-data-integrity-issues-drupal-102&quot;&gt;wrote up a walkthrough&lt;/a&gt; in dealing with a change introduced for List field validation in Drupal 10.2 using a stored procedure to rewrite existing data. After some discussion, this change has been reverted in an upcoming patch release for Drupal 10.2:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.drupal.org/project/drupal/issues/3411419&quot;&gt;Regression from #2521800: using machine name element for ListStringItem breaks with existing data&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
      
&lt;span rel=&quot;schema:author&quot;&gt;&lt;span lang about=&quot;https://kevinquillen.com/user/1&quot; typeof=&quot;schema:Person&quot; property=&quot;schema:name&quot; datatype&gt;Kevin&lt;/span&gt;&lt;/span&gt;

&lt;span property=&quot;schema:dateCreated&quot; content=&quot;2024-01-03T15:08:26+00:00&quot;&gt;&lt;time datetime=&quot;2024-01-03T10:08:26-05:00&quot; title=&quot;Wednesday, January 3, 2024 - 10:08&quot;&gt;January 3rd, 2024&lt;/time&gt;
&lt;/span&gt;
</description><pubDate>Wed, 03 Jan 2024 15:08:26 GMT</pubDate><dc:creator>Kevin</dc:creator></item><item><title>Fixing list text field data integrity issues in Drupal 10.2</title><link>https://kevinquillen.com/fixing-list-text-field-data-integrity-issues-drupal-102</link><guid isPermaLink="false">378 at https://kevinquillen.com</guid><description>
&lt;span property=&quot;schema:name&quot;&gt;Fixing list text field data integrity issues in Drupal 10.2&lt;/span&gt;

            &lt;div property=&quot;schema:text&quot; class=&quot;text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item&quot;&gt;&lt;p&gt;Drupal 10.2 has arrived and ships with several new features, bugfixes, enhancements and quality of life improvements.&lt;/p&gt;&lt;p&gt;One change that might catch you off guard though involves List (text) fields. These fields store key/value pairs of information, designed to present users with a select list of options in a field.&amp;nbsp;&lt;/p&gt;&lt;/div&gt;
      
&lt;span rel=&quot;schema:author&quot;&gt;&lt;span lang about=&quot;https://kevinquillen.com/user/1&quot; typeof=&quot;schema:Person&quot; property=&quot;schema:name&quot; datatype&gt;Kevin&lt;/span&gt;&lt;/span&gt;

&lt;span property=&quot;schema:dateCreated&quot; content=&quot;2023-12-28T17:48:27+00:00&quot;&gt;&lt;time datetime=&quot;2023-12-28T12:48:27-05:00&quot; title=&quot;Thursday, December 28, 2023 - 12:48&quot;&gt;December 28th, 2023&lt;/time&gt;
&lt;/span&gt;
</description><pubDate>Thu, 28 Dec 2023 17:48:27 GMT</pubDate><dc:creator>Kevin</dc:creator></item><item><title>Access Apache Solr admin over HTTPS in DDEV</title><link>https://kevinquillen.com/access-apache-solr-admin-over-https-ddev</link><guid isPermaLink="false">377 at https://kevinquillen.com</guid><description>
&lt;span property=&quot;schema:name&quot;&gt;Access Apache Solr admin over HTTPS in DDEV&lt;/span&gt;

            &lt;div property=&quot;schema:text&quot; class=&quot;text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item&quot;&gt;&lt;p&gt;I have seen some chatter lately about folks asking how to access the Solr admin interface over HTTPS instead of HTTP connection in DDEV. Enabling this is a simple change to the &lt;code&gt;docker-compose.solr.yaml&lt;/code&gt; file in the &lt;code&gt;.ddev&lt;/code&gt; directory.&lt;/p&gt;&lt;p&gt;In the file, make the following changes under the &lt;code&gt;environment&lt;/code&gt; section:&lt;/p&gt;&lt;/div&gt;
      
&lt;span rel=&quot;schema:author&quot;&gt;&lt;span lang about=&quot;https://kevinquillen.com/user/1&quot; typeof=&quot;schema:Person&quot; property=&quot;schema:name&quot; datatype&gt;Kevin&lt;/span&gt;&lt;/span&gt;

&lt;span property=&quot;schema:dateCreated&quot; content=&quot;2023-11-29T17:07:15+00:00&quot;&gt;&lt;time datetime=&quot;2023-11-29T12:07:15-05:00&quot; title=&quot;Wednesday, November 29, 2023 - 12:07&quot;&gt;November 29th, 2023&lt;/time&gt;
&lt;/span&gt;
</description><pubDate>Wed, 29 Nov 2023 17:07:15 GMT</pubDate><dc:creator>Kevin</dc:creator></item><item><title>Upcasting Custom Route Parameters in Drupal</title><link>https://kevinquillen.com/upcasting-custom-route-parameters-drupal</link><guid isPermaLink="false">376 at https://kevinquillen.com</guid><description>
&lt;span property=&quot;schema:name&quot;&gt;Upcasting Custom Route Parameters in Drupal&lt;/span&gt;

            &lt;div property=&quot;schema:text&quot; class=&quot;text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item&quot;&gt;&lt;p&gt;Thanks to &lt;a href=&quot;https://symfony.com/&quot;&gt;Symfony&lt;/a&gt;, Drupal has an incredibly robust routing system. What once used to be a chore in Drupal versions prior to 8 is now a breeze. Creating routes is super simple and parameter upcasting is usually automatic for known entities, like nodes, users, and taxonomy terms.&lt;/p&gt;&lt;p&gt;For example, take this route definition:&lt;/p&gt;&lt;/div&gt;
      
&lt;span rel=&quot;schema:author&quot;&gt;&lt;span lang about=&quot;https://kevinquillen.com/user/1&quot; typeof=&quot;schema:Person&quot; property=&quot;schema:name&quot; datatype&gt;Kevin&lt;/span&gt;&lt;/span&gt;

&lt;span property=&quot;schema:dateCreated&quot; content=&quot;2023-11-21T00:21:35+00:00&quot;&gt;&lt;time datetime=&quot;2023-11-20T19:21:35-05:00&quot; title=&quot;Monday, November 20, 2023 - 19:21&quot;&gt;November 20th, 2023&lt;/time&gt;
&lt;/span&gt;
</description><pubDate>Tue, 21 Nov 2023 00:21:35 GMT</pubDate><dc:creator>Kevin</dc:creator></item><item><title>Keep Secrets secure outside of configuration in Drupal with the Key module</title><link>https://kevinquillen.com/keep-secrets-secure-outside-configuration-drupal-key-module</link><guid isPermaLink="false">375 at https://kevinquillen.com</guid><description>
&lt;span property=&quot;schema:name&quot;&gt;Keep Secrets secure outside of configuration in Drupal with the Key module&lt;/span&gt;

            &lt;div property=&quot;schema:text&quot; class=&quot;text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item&quot;&gt;&lt;p&gt;Security is a paramount feature of any modern CMS. Drupal has a well defined authentication and &lt;a href=&quot;https://en.wikipedia.org/wiki/Role-based_access_control&quot;&gt;RBAC (role based access control)&lt;/a&gt; system limiting the scope of what users can or cannot do. Soon we will even have &lt;a href=&quot;https://www.drupal.org/project/drupal/issues/3371246&quot;&gt;PBAC (policy based access control)&lt;/a&gt; in Drupal core. But what about securing other things, like API tokens, SSL certificates or secrets that are used to authenticate with external services that enable features that require authorization?&lt;/p&gt;&lt;/div&gt;
      
&lt;span rel=&quot;schema:author&quot;&gt;&lt;span lang about=&quot;https://kevinquillen.com/user/1&quot; typeof=&quot;schema:Person&quot; property=&quot;schema:name&quot; datatype&gt;Kevin&lt;/span&gt;&lt;/span&gt;

&lt;span property=&quot;schema:dateCreated&quot; content=&quot;2023-11-09T18:29:47+00:00&quot;&gt;&lt;time datetime=&quot;2023-11-09T13:29:47-05:00&quot; title=&quot;Thursday, November 9, 2023 - 13:29&quot;&gt;November 9th, 2023&lt;/time&gt;
&lt;/span&gt;
</description><pubDate>Thu, 09 Nov 2023 18:29:47 GMT</pubDate><dc:creator>Kevin</dc:creator></item><item><title>DDEV being considered as the &quot;official&quot; Drupal development environment</title><link>https://kevinquillen.com/ddev-being-considered-official-drupal-development-environment</link><guid isPermaLink="false">374 at https://kevinquillen.com</guid><description>
&lt;span property=&quot;schema:name&quot;&gt;DDEV being considered as the &quot;official&quot; Drupal development environment&lt;/span&gt;

            &lt;div property=&quot;schema:text&quot; class=&quot;text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item&quot;&gt;&lt;p&gt;It&apos;s exciting to see some recent momentum into adopting &lt;a href=&quot;https://ddev.com/&quot;&gt;DDEV&lt;/a&gt; as the official local development environment for Drupal, supported by core and contrib community leaders.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.drupal.org/project/ideas/issues/2965681#comment-15278862&quot;&gt;https://www.drupal.org/project/ideas/issues/2965681#comment-15278862&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
      
&lt;span rel=&quot;schema:author&quot;&gt;&lt;span lang about=&quot;https://kevinquillen.com/user/1&quot; typeof=&quot;schema:Person&quot; property=&quot;schema:name&quot; datatype&gt;Kevin&lt;/span&gt;&lt;/span&gt;

&lt;span property=&quot;schema:dateCreated&quot; content=&quot;2023-10-29T15:27:50+00:00&quot;&gt;&lt;time datetime=&quot;2023-10-29T11:27:50-04:00&quot; title=&quot;Sunday, October 29, 2023 - 11:27&quot;&gt;October 29th, 2023&lt;/time&gt;
&lt;/span&gt;
</description><pubDate>Sun, 29 Oct 2023 15:27:50 GMT</pubDate><dc:creator>Kevin</dc:creator></item><item><title>Why We Merged Our Drupal Development Stack with DDEV</title><link>https://kevinquillen.com/why-we-merged-our-drupal-development-stack-ddev</link><guid isPermaLink="false">373 at https://kevinquillen.com</guid><description>
&lt;span property=&quot;schema:name&quot;&gt;Why We Merged Our Drupal Development Stack with DDEV&lt;/span&gt;

            &lt;div property=&quot;schema:text&quot; class=&quot;text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item&quot;&gt;&lt;p&gt;We recently spent a few days at Velir overhauling our local Docker development stack for Drupal merging our tool and workflow with DDEV for better project outcomes. DDEV is an amazing fit for modern Drupal development.&lt;/p&gt;&lt;p&gt;You can read more about it here:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.velir.com/ideas/2023/10/20/why-we-merged-our-drupal-development-stack-with-ddev&quot;&gt;https://www.velir.com/ideas/2023/10/20/why-we-merged-our-drupal-development-stack-with-ddev&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;
      
&lt;span rel=&quot;schema:author&quot;&gt;&lt;span lang about=&quot;https://kevinquillen.com/user/1&quot; typeof=&quot;schema:Person&quot; property=&quot;schema:name&quot; datatype&gt;Kevin&lt;/span&gt;&lt;/span&gt;

&lt;span property=&quot;schema:dateCreated&quot; content=&quot;2023-10-23T13:36:24+00:00&quot;&gt;&lt;time datetime=&quot;2023-10-23T09:36:24-04:00&quot; title=&quot;Monday, October 23, 2023 - 09:36&quot;&gt;October 23rd, 2023&lt;/time&gt;
&lt;/span&gt;
</description><pubDate>Mon, 23 Oct 2023 13:36:24 GMT</pubDate><dc:creator>Kevin</dc:creator></item><item><title>Using pre-commit and post-commit Git hooks in Drupal</title><link>https://kevinquillen.com/using-pre-commit-and-post-commit-git-hooks-drupal</link><guid isPermaLink="false">370 at https://kevinquillen.com</guid><description>
&lt;span property=&quot;schema:name&quot;&gt;Using pre-commit and post-commit Git hooks in Drupal&lt;/span&gt;

            &lt;div property=&quot;schema:text&quot; class=&quot;text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item&quot;&gt;&lt;p&gt;A few months back (sorry, its been a minute!) I detailed how you could &lt;a href=&quot;https://kevinquillen.com/setting-phpdocumentor-3-drupal-9-10&quot;&gt;set up PHPDocumentor&lt;/a&gt; to automatically generate documentation for your custom code and modules for Drupal. Another step you can take is automating this process for everyone in your projects by taking advantage of &lt;a href=&quot;https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks&quot;&gt;git hooks&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
      
&lt;span rel=&quot;schema:author&quot;&gt;&lt;span lang about=&quot;https://kevinquillen.com/user/1&quot; typeof=&quot;schema:Person&quot; property=&quot;schema:name&quot; datatype&gt;Kevin&lt;/span&gt;&lt;/span&gt;

&lt;span property=&quot;schema:dateCreated&quot; content=&quot;2023-10-15T15:00:00+00:00&quot;&gt;&lt;time datetime=&quot;2023-10-15T11:00:00-04:00&quot; title=&quot;Sunday, October 15, 2023 - 11:00&quot;&gt;October 15th, 2023&lt;/time&gt;
&lt;/span&gt;
</description><pubDate>Sun, 15 Oct 2023 15:00:00 GMT</pubDate><dc:creator>Kevin</dc:creator></item><item><title>Drupalcon Pittsburgh 2023 Recap</title><link>https://kevinquillen.com/drupalcon-pittsburgh-2023-recap</link><guid isPermaLink="false">372 at https://kevinquillen.com</guid><description>
&lt;span property=&quot;schema:name&quot;&gt;Drupalcon Pittsburgh 2023 Recap&lt;/span&gt;

            &lt;div property=&quot;schema:text&quot; class=&quot;text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item&quot;&gt;&lt;p&gt;It was quite a week spent in Pittsburgh earlier this month for Drupalcon! We are beginning to rollout our thoughts and experiences from members of the team who attended, what we saw, and things that piqued our interest!&amp;nbsp;&lt;/p&gt;&lt;p&gt;The image in this post was a picture from the lightning talk I gave on &quot;Leveraging Artificial Intelligence in Drupal 10 with OpenAI and ChatGPT&quot; and was a great turnout. The week was a tour de force of talks, networking, meeting community members and seeing the sights in Pittsburgh of course. Can&apos;t wait for the next one.&lt;/p&gt;&lt;/div&gt;
      
&lt;span rel=&quot;schema:author&quot;&gt;&lt;span lang about=&quot;https://kevinquillen.com/user/1&quot; typeof=&quot;schema:Person&quot; property=&quot;schema:name&quot; datatype&gt;Kevin&lt;/span&gt;&lt;/span&gt;

&lt;span property=&quot;schema:dateCreated&quot; content=&quot;2023-06-27T17:36:32+00:00&quot;&gt;&lt;time datetime=&quot;2023-06-27T13:36:32-04:00&quot; title=&quot;Tuesday, June 27, 2023 - 13:36&quot;&gt;June 27th, 2023&lt;/time&gt;
&lt;/span&gt;
</description><pubDate>Tue, 27 Jun 2023 17:36:32 GMT</pubDate><dc:creator>Kevin</dc:creator></item></channel></rss>