The upstreamable way

The more you give the more you have

Rodrigo Aguilera

How do we advance as a community?

Salut! Eu sunt Rodrigo Aguilera

Focus on quality, development processes and sustainable workflow.

rodrigoaguilera

@marinero

Agenda

  • The upstreamable way
  • There is (almost) a module for that
  • There is no module for that
  • Developing in the open
  • Examples

The upstreamable way

Cine împarte, parte își face

The myth of the Drupal rockstar

Develop solutions and share them with the community.

There is (almost) a module for that

Requirements

Have an account on github, gitlab, Drupal.org, stackoverflow, etc.

Get comfortable with Pull requests, patches, forks, rebases...

Everything starts with a search

Solution found!

Subscribe

Follow button Subscribe button Star button

Be bold, participate!

Workarounds

Finding and trying patches

Patch applied and working

Merge request as patches

						
https://github.com/php/php-src/pull/296

TO

https://github.com/php/php-src/pull/296.patch
						
						

Creating your own patches.

Not everything is patches

https://www.lullabot.com/articles/patch-less-composer-workflow-drupal-using-forks

Composer as the tool-of-choice

There is no module for that

The gates are open

Before creating a new folder on /modules/custom

If you want tofu for breakfast, don’t build a soy farm.

Create small generic solutions

A menu with icons

Modules created for a menu with icons

  • Menu item content fields
  • Font awesome fields
  • Libraries provider fontawesome
  • Link field display mode formatter

The composer flow

						
{
    "repositories": [
        {
            "type": "path",
            "url": "local-packages/*"
        }
    ],
    "require": {
        "drupal/mypackage": "*"
    }
}
						
						

Contribution must be easy or is not going to happen

Code is not like a good wine.

To fork or not to fork

Abandoned projects

New approach

Our use case is just a different configuration

Developing in the open

Be kind to the upstream

Get your name out there

Be aware of what you take

Little changes compound to big gains

Examples

Bulma, Libraries provider and JsDelivr API

Drulma

Libraries provider

JsDelivr API

Hook event dispatcher

Consolidation

Common projects for use by various command line / console tools.

Robo logo

Leverage the free software ecosystem

Contribute your own solutions

Play nice with other contributors

Mulțumesc

Join us for contribution

Rodrigo Aguilera