oliverdavies.uk/content/node.99989cd7-1f79-4f8e-abf1-12b69bc7ee1c.yml

80 lines
4.2 KiB
YAML

uuid:
- value: 99989cd7-1f79-4f8e-abf1-12b69bc7ee1c
langcode:
- value: en
type:
- target_id: daily_email
target_type: node_type
target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7
revision_timestamp:
- value: '2025-05-11T09:00:12+00:00'
revision_uid:
- target_type: user
target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849
revision_log: { }
status:
- value: true
uid:
- target_type: user
target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849
title:
- value: 'Proudly found elsewhere'
created:
- value: '2024-06-09T00:00:00+00:00'
changed:
- value: '2025-05-11T09:00:12+00:00'
promote:
- value: false
sticky:
- value: false
default_langcode:
- value: true
revision_translation_affected:
- value: true
path:
- alias: /daily/2024/06/09/proudly-found-elsewhere
langcode: en
body:
- value: |
<p>A few days ago, I wrote about <a href="/daily/2024/06/07/not-invented-here">where Drupal used to be</a>, and some of the things that Drupal predates - such as Git, GitHub and Composer.</p>
<p>With Drupal 8, Drupal changed and switched from "not invented here" to "proudly found elsewhere" and started use and embrace third-party code.</p>
<p>Now, we use Composer to manage Drupal core's dependencies, as well as for individual Drupal projects - a tool widely used and central to the PHP community and its projects.</p>
<p>This allowed us to include and use third-party code within Drupal, including Symfony components, Twig templates, Doctrine libraries, Guzzle and more - using tried and tested solutions instead of writing everything from scratch.</p>
<p>We use PHPUnit for our automated tests and PHPStan for static analysis.</p>
<p>We use Rector, a PHP tool to automate code updates and refactorings, to automatically create updates for modules to make them compatible with the next major Drupal version.</p>
<p>Drupal.org have migrated its code repositories to GitLab, now support merge requests instead of patch files, and will soon be migrating issues, too, making Drupal easier to maintain and contribute to.</p>
<p>As well as the code, we've also been influenced by approaches, such as the modern Drupal release cycle and version management - following semantic versioning, backwards compatibility policies, twice-yearly feature releases and no "rewrite everything" major version upgrades.</p>
<p>Looking back, a lot has improved since 2015 which makes Drupal a very interesting place to be.</p>
format: full_html
processed: |
<p>A few days ago, I wrote about <a href="/daily/2024/06/07/not-invented-here">where Drupal used to be</a>, and some of the things that Drupal predates - such as Git, GitHub and Composer.</p>
<p>With Drupal 8, Drupal changed and switched from "not invented here" to "proudly found elsewhere" and started use and embrace third-party code.</p>
<p>Now, we use Composer to manage Drupal core's dependencies, as well as for individual Drupal projects - a tool widely used and central to the PHP community and its projects.</p>
<p>This allowed us to include and use third-party code within Drupal, including Symfony components, Twig templates, Doctrine libraries, Guzzle and more - using tried and tested solutions instead of writing everything from scratch.</p>
<p>We use PHPUnit for our automated tests and PHPStan for static analysis.</p>
<p>We use Rector, a PHP tool to automate code updates and refactorings, to automatically create updates for modules to make them compatible with the next major Drupal version.</p>
<p>Drupal.org have migrated its code repositories to GitLab, now support merge requests instead of patch files, and will soon be migrating issues, too, making Drupal easier to maintain and contribute to.</p>
<p>As well as the code, we've also been influenced by approaches, such as the modern Drupal release cycle and version management - following semantic versioning, backwards compatibility policies, twice-yearly feature releases and no "rewrite everything" major version upgrades.</p>
<p>Looking back, a lot has improved since 2015 which makes Drupal a very interesting place to be.</p>
summary: null
field_daily_email_cta: { }