oliverdavies.uk/content/node.207113dd-f0f6-4e8a-ab98-6c6b4a53c032.yml

106 lines
4.7 KiB
YAML

uuid:
- value: 207113dd-f0f6-4e8a-ab98-6c6b4a53c032
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:10+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: 'Vetting third-party open-source software'
created:
- value: '2024-06-13T00:00:00+00:00'
changed:
- value: '2025-05-11T09:00:10+00:00'
promote:
- value: false
sticky:
- value: false
default_langcode:
- value: true
revision_translation_affected:
- value: true
path:
- alias: /daily/2024/06/13/vetting-third-party-open-source-software
langcode: en
body:
- value: |
<p>Open-source software, such as Drupal modules and themes, PHP libraries and Tailwind CSS plugins, is great.</p>
<p>Instead of writing everything from scratch, if someone else has written what you need, you can use it.</p>
<p>In the Drupal ecosystem, there's a saying - "There's a module for that!".</p>
<p>But, assuming you find a project that adds the functionality you need, you should review and vet it before adding it to your application.</p>
<p>Adding too many modules and libraries can cause performance issues, add a maintenance overhead, introduce upstream bugs and add potential security vulnerabilities.</p>
<p>As well as reading the code, here are some questions I ask and things I look for when deciding to add a project or not:</p>
<ul>
<li>Does it do what I need?</li>
<li>Does it add too much functionality? Is there a more minimal version that does what I need without the extra overhead?</li>
<li>Does it have a stable release? If there's only a development or alpha release (which are unstable and can break at any time), I wouldn't add it.</li>
<li>Is it extendable? Can I configure or extend it if I need to add more or alter it's default functionality?</li>
<li>How many other websites are using it? Websites like Drupal.org and Packagist will show usage statistics.</li>
<li>How many open issues are there?</li>
<li>When was the most recent commit and release?</li>
<li>Does it have automated tests? If so, are they passing?</li>
<li>Does it have a README.md file or other documentation?</li>
<li>Who are the maintainers?</li>
<li>Are they responsive to issues and accepting of outside contributions? If I find a bug, can I fix and contribute it?</li>
<li>Does the project have a published roadmap?</li>
</ul>
<p>Finally:</p>
<p>Do I really need it?</p>
format: full_html
processed: |
<p>Open-source software, such as Drupal modules and themes, PHP libraries and Tailwind CSS plugins, is great.</p>
<p>Instead of writing everything from scratch, if someone else has written what you need, you can use it.</p>
<p>In the Drupal ecosystem, there's a saying - "There's a module for that!".</p>
<p>But, assuming you find a project that adds the functionality you need, you should review and vet it before adding it to your application.</p>
<p>Adding too many modules and libraries can cause performance issues, add a maintenance overhead, introduce upstream bugs and add potential security vulnerabilities.</p>
<p>As well as reading the code, here are some questions I ask and things I look for when deciding to add a project or not:</p>
<ul>
<li>Does it do what I need?</li>
<li>Does it add too much functionality? Is there a more minimal version that does what I need without the extra overhead?</li>
<li>Does it have a stable release? If there's only a development or alpha release (which are unstable and can break at any time), I wouldn't add it.</li>
<li>Is it extendable? Can I configure or extend it if I need to add more or alter it's default functionality?</li>
<li>How many other websites are using it? Websites like Drupal.org and Packagist will show usage statistics.</li>
<li>How many open issues are there?</li>
<li>When was the most recent commit and release?</li>
<li>Does it have automated tests? If so, are they passing?</li>
<li>Does it have a README.md file or other documentation?</li>
<li>Who are the maintainers?</li>
<li>Are they responsive to issues and accepting of outside contributions? If I find a bug, can I fix and contribute it?</li>
<li>Does the project have a published roadmap?</li>
</ul>
<p>Finally:</p>
<p>Do I really need it?</p>
summary: null
field_daily_email_cta: { }