Skip to content

Wunderful as Composer package #11

@hkirsman

Description

@hkirsman

I understand this theme is being ported to Drupal Project in this PR wunderio/drupal-project#431

One problem with our Drupal Project https://github.com/wunderio/drupal-project is that once you start using it in your project, you're stuck with the code it was when you copied it. There was initiative in Tech Lead guild to make this project updatable https://docs.google.com/presentation/d/1vbjE2e2HRO1WOdz0usrRCyc6fVN-56dMHHzF0M8fkBU/edit?slide=id.g27b843d70a4_0_323#slide=id.g27b843d70a4_0_323

Image

There's no clear solution for it, but my take on it has been to split Drupal Project to smaller Composer packages. For example for DDEV I've done it here:
Github page:
https://github.com/wunderio/ddev-drupal
Packagist:
https://packagist.org/packages/wunderio/ddev-drupal

So now even if you have your own project based on Drupal Project, at some point you'll notice that ddev-drupal in your composer.json needs updating. Actually in this case, I've implemented something that prompts you to update in shell when you start DDEV :)

As an another example, when implementing #12 , we could bump up Drupal version restriction to 10.3, and add requirement to other modules drupal/storybook drupal/twig_field_value drupal/twig_tweak and keep only
composer require drupal/wunderful.

Maybe one more example - here Tormi said he'd updated project to Drupal 11 - if this theme would be Composer package, it would probably had only Drupal 10 requirement. Tormi would not have had been able to update it without asking and solving this issue with frontend guild. Yes it would have taken a bit extra time, but in the end we'd have verified this is Drupal 11 compatible and released new version - maybe even with some code fixes.

I believe this theme would be evolving further - security updates, whole new node package versions, new base components. So why not make it possible for all projects to get these updates?

For this setup we would need child theme, but most of the code should be here. What do you think? Any reasons why this would not work or would not be good idea?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions