drupal europe 2018 - lesser known perks of using …...git hooks helps to enforce code quality...

26
1 axelerant.com www.drupaleurope.org

Upload: others

Post on 26-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

1axelerant.comwww.drupaleurope.org

Page 2: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

2axelerant.com

Lesser known perks of using composer

Drupal Europe 2018

Page 3: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

3axelerant.com

Drupal + Technology

TRACK SUPPORTED BY

Page 4: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

4axelerant.com

Special Thanks to..

Page 5: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

5axelerant.com

Mohit Aghera

Drupal developer @Axelerant

Drupal.org: mohit_aghera

Twitter: @mohit_rocks

Page 6: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

6axelerant.com

Quick Introduction

● Why do we need it?● How do we use it?

Page 7: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

7axelerant.com

Drupal Composer initiative

Follow updates here: https://www.drupal.org/project/ideas/issues/2958021

Page 8: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

8axelerant.com

Composer scripts

● Define script in composer.json and run● Helps to automate tasks● Supports various events.

Page 9: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

9axelerant.com

Composer Scripts

Page 10: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

10axelerant.com

Composer Plugins

● Helps to overcome limitation of composer scripts● Run independently - irrespective of root package● Helps in creating distributable package

Page 11: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

11axelerant.com

Composer Plugins

{

"name": "my/plugin-package",

"type": "composer-plugin",

"require": {

"composer-plugin-api": "^1.1"

},

"extra": {

"class": "My\\Plugin"

}

}

● “type” : “composer-plugin”● “extra” : Contains class name● Add special package called

“composer-plugin-api”

Page 12: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

12axelerant.com

Composer Plugins

drupal-composer/drupal-scaffold

Page 13: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

13axelerant.com

Composer Plugins

Page 14: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

14axelerant.com

Patching

● Requirement to update core of system● Bugs that are not merged

Page 15: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

15axelerant.com

Patching

Page 16: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

16axelerant.com

Keeping data up to date

● Pull and process remote data automatically● Implement Composer Plugins

Page 17: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

17axelerant.com

Keeping data up to date

Benefits:

● No need to have separate sync code● Helps to solve problems in continuous integration as data will already be there

Limitations:

● It is meant for retrieving and storing data - no live sync.

Page 18: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

18axelerant.com

Commit Hooks

Page 19: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

19axelerant.com

Commit Hooks

● GIT hooks helps to enforce code quality● Ensure commit messages are proper● Coding standards validation● Sharing GIT hooks with composer has more advantages

Page 20: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

20axelerant.com

Commit Hooks

There are several libraries that supports this type of implementations:

● https://github.com/sebastianfeldmann/captainhook● https://github.com/bruli/php-git-hooks● https://github.com/php-composter/php-composter● https://github.com/BrainMaestro/composer-git-hooks

Page 21: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

21axelerant.com

Page 22: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

22axelerant.com

Automatting project structure

● Composer helps to generate essential files and other code● Use case : drupal-composer/drupal-project

Page 23: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

23axelerant.com

Automatting project structure

Page 24: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

24axelerant.com

Example from “ScriptHandler.php”

Page 25: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

25axelerant.com

Thank you..

Page 26: Drupal Europe 2018 - Lesser known perks of using …...GIT hooks helps to enforce code quality Ensure commit messages are proper Coding standards validation Sharing GIT hooks with

26axelerant.com

Become a Drupal contributor, Friday from 9 AM

● First timers workshop● Mentored contribution● General contribution

26