PHPackages                             brainsum/drupal-dev-tools - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. brainsum/drupal-dev-tools

ActiveComposer-plugin[Testing &amp; Quality](/categories/testing)

brainsum/drupal-dev-tools
=========================

Dev tools for Drupal development.

6.0.0(11mo ago)610.4k↓36.7%2[5 issues](https://github.com/brainsum/drupal-dev-tools/issues)gpl-3.0-or-laterPHPPHP &gt;=8.1

Since Dec 14Pushed 10mo ago4 watchersCompare

[ Source](https://github.com/brainsum/drupal-dev-tools)[ Packagist](https://packagist.org/packages/brainsum/drupal-dev-tools)[ RSS](/packages/brainsum-drupal-dev-tools/feed)WikiDiscussions 6.x Synced 1mo ago

READMEChangelog (10)Dependencies (11)Versions (31)Used By (0)

Brainsum dev tools for Drupal 10
================================

[](#brainsum-dev-tools-for-drupal-10)

[![Build Status](https://camo.githubusercontent.com/5dc1079c5e41ae1ea689708aa55075e675a6a94b1b6add496e5c66b3f2101b45/68747470733a2f2f7472617669732d63692e6f72672f627261696e73756d2f64727570616c2d6465762d746f6f6c732e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/brainsum/drupal-dev-tools)

About
-----

[](#about)

Package / Composer plugin for standardizing development tools.

Setup
-----

[](#setup)

### Preparation

[](#preparation)

If you already have a `grumphp.yml` and/or `phpcs.xml` file in your project, you should rename them. E.g. `mv grumphp.yml grumphp.yml.backup`If you want to add new tasks and rules on a case-by-case basis, check the files in the `distfiles` folder of this package. Note: This package is not going to overwrite existing ones, but it might not work with them either.

### Installation

[](#installation)

In your project, simply use

`composer require --dev brainsum/drupal-dev-tools:^6.0.0`

### Settings

[](#settings)

#### Extend

[](#extend)

In the `grumphp.yml` file in your project, add the following:

```
imports:
    - { resource: vendor/brainsum/drupal-dev-tools/convention/grumphp.yml }

```

This will signal grumphp to import everything from this package.

You can customize the rules when needed, too:

```
parameters:
    convention.git_commit_message_whitelist: ['/^([A-Z]+-[\d]+ )+\| [A-Za-z\d\s\.]+([^.])+\.{1}$/s']

```

For more information, see:

- [GrumPHP Conventions](https://github.com/phpro/grumphp/blob/master/doc/conventions.md)

#### Override

[](#override)

The files `grumphp.yml` and `phpcs.xml` should now be created in your project root. They should be good to go, but you should take a look at them and customize them for the current project as necessary. E.g, phpcs.xml descriptions, namings, checked folders, etc.; grumphp.yml php version, etc.

If they, for some reason, don't get created, you can copy their contents from the files from `vendor/brainsum/drupal-dev-tools/distfiles` as needed.

If you just want to use some settings from `grumphp.yml`, not the whole thing, see `convention/grumphp.yml`, as `distfiles/grumphp.yml` is only an import file and doesn't contain any other directives.

GrumPHP
-------

[](#grumphp)

### Settings

[](#settings-1)

For the pre-defined settings see `distfiles/grumphp.yml` and `convention/grumphp.yml`.

Note, we are also trying to create a `phpcs.xml` file in the project root. The source for that file is also in the `distfiles` folder.

Twig Cs Fixer
-------------

[](#twig-cs-fixer)

The `.twig-cs-fixer.php` file is also created in the project root copy of `distfiles/.twig-cs-fixer.php`. Twig CS Fixer will run on web/modules/custom, web/themes/custom, and web/profiles/custom directories by default.

We are using custom rules for Twig CS Fixer:

#### NoRawFilterRule

[](#norawfilterrule)

This rule disallows the use of the `raw` filter for variables, as it can lead to security vulnerabilities if not used carefully.

```
{{ variable|raw }}
```

You can disable this rule (before the line with `raw` filter) by adding the following comment in your Twig template:

```
{# @TwigCsIgnoreNoRawFilterRule #}
```

#### NoQuotationMarkAttributeRule

[](#noquotationmarkattributerule)

This rule disallows the use of attributes without quotes, as it can lead to XSS vulnerabilities.

```

```

#### ForbiddenFunctionRule

[](#forbiddenfunctionrule)

This rule disallows the use of certain Twig functions that are considered as debugging functions.

- dump, dpm, kint, print\_r, var\_dump, var\_export, vardumper

```
{{ dump() }}
```

For more information, see the [Twig CS Fixer documentation](https://github.com/VincentLanglet/Twig-CS-Fixer).

###  Health Score

45

—

FairBetter than 93% of packages

Maintenance36

Infrequent updates — may be unmaintained

Popularity31

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity80

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 58.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~81 days

Recently: every ~96 days

Total

30

Last Release

340d ago

Major Versions

2.0.x-dev → 3.02023-03-29

3.1 → 4.02023-04-14

3.x-dev → 4.22024-02-05

4.x-dev → 5.0.02024-05-24

5.x-dev → 6.0.02025-06-11

PHP version history (7 changes)0.2.0PHP ^7.0

0.4.1PHP &gt;=7.0.8

0.5.0PHP ^7.1

0.6.0PHP ^7.2

1.9.0PHP ^7.3

2.0.0PHP &gt;=7.3 &lt;8

3.0PHP &gt;=8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/15192295?v=4)[Máté Havelant](/maintainers/mhavelant)[@mhavelant](https://github.com/mhavelant)

![](https://avatars.githubusercontent.com/u/9446343?v=4)[szatom](/maintainers/szatom)[@szatom](https://github.com/szatom)

---

Top Contributors

[![mhavelant](https://avatars.githubusercontent.com/u/15192295?v=4)](https://github.com/mhavelant "mhavelant (66 commits)")[![szatom](https://avatars.githubusercontent.com/u/9446343?v=4)](https://github.com/szatom "szatom (38 commits)")[![dj1999](https://avatars.githubusercontent.com/u/16994729?v=4)](https://github.com/dj1999 "dj1999 (7 commits)")[![gszanto](https://avatars.githubusercontent.com/u/197602641?v=4)](https://github.com/gszanto "gszanto (1 commits)")

---

Tags

brainsumcode-qualitycomposercomposer-plugindeveloper-toolsdrupaldrupal-8grumphpgrumphp-task

### Embed Badge

![Health badge](/badges/brainsum-drupal-dev-tools/health.svg)

```
[![Health](https://phpackages.com/badges/brainsum-drupal-dev-tools/health.svg)](https://phpackages.com/packages/brainsum-drupal-dev-tools)
```

###  Alternatives

[phpro/grumphp

A composer plugin that enables source code quality checks.

4.3k15.5M904](/packages/phpro-grumphp)[acquia/orca

A tool for testing a company's software packages together in the context of a realistic, functioning, best practices Drupal build

32902.4k](/packages/acquia-orca)[orchestra/testbench-dusk

Laravel Dusk Testing Helper for Packages Development

105936.1k161](/packages/orchestra-testbench-dusk)[wp-cli/wp-cli-tests

WP-CLI testing framework

422.7M87](/packages/wp-cli-wp-cli-tests)[axelerant/drupal-quality-checker

Code quality checking tools for Drupal project.

13197.9k1](/packages/axelerant-drupal-quality-checker)[youwe/testing-suite

Contains Youwe's default testing packages for php.

13176.9k8](/packages/youwe-testing-suite)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
