PHPackages                             diablomedia/arcanist-extensions - 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. diablomedia/arcanist-extensions

ActiveLibrary[Testing &amp; Quality](/categories/testing)

diablomedia/arcanist-extensions
===============================

Collection of Arcanist extensions use for linting/testing code with Arcanist and Phabricator/Phorge

1.2.0(8mo ago)01.1k[1 PRs](https://github.com/diablomedia/arcanist-extensions/pulls)MITPHPCI passing

Since Sep 3Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/diablomedia/arcanist-extensions)[ Packagist](https://packagist.org/packages/diablomedia/arcanist-extensions)[ RSS](/packages/diablomedia-arcanist-extensions/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (5)Versions (5)Used By (0)

Arcanist Extensions
===================

[](#arcanist-extensions)

Extensions for [Arcanist](https://github.com/phacility/arcanist) (should also work with any forks of Arcanist, like the one bundled with [Phorge](https://github.com/phorgeit/arcanist))

Installation
------------

[](#installation)

The recommended way to install these extensions is with composer. There are very few dependencies (only one, for the php-cs-fixer linter), so there shouldn't be many dependency conflicts.

`composer require diablomedia/arcanist-extensions --dev`

If composer installation is not possible, you can clone this repo somewhere in your system and point your `.arcconfig` to the path where this is installed. You can also install it in the same location as your `arcanist` and `libphutil` directories, and arcanist should find the extensions there.

Configuration
-------------

[](#configuration)

To enable all of the extensions in this repository, you just need to add one line to your `.arcconfig` file's "load" section:

```
{
  "load": ["vendor/diablomedia/arcanist-extensions/extensions/"]
}
```

If you don't want to enable all of the extensions in your config (technically they're not used until you configure them in your `.arclint` (for linters) or `.arcconfig` (for unit test engines)) you can load each extension individually, for example:

```
{
  "load": [
    "vendor/diablomedia/arcanist-extensions/extensions/composer_validate_linter",
    "vendor/diablomedia/arcanist-extensions/extensions/phpstan_linter"
  ]
}
```

To configure the extension to run in your arcanist project, please reference each extension's README file (linked below).

Extensions Included
-------------------

[](#extensions-included)

- Linters
    - [Composer Validate](extensions/composer_validate_linter/README.md) - Validate composer.json and composer.lock files (using `composer --validate` command)
    - [PHP CS Fixer](extensions/php_cs_fixer_linter/README.md) - Runs [PHP CS Fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer)
    - [PHPStan](extensions/phpstan_linter/README.md) - Runs [PHPStan](https://github.com/phpstan/phpstan)
- Unit Test Engines
    - [Jest](extensions/jest_unit_test_engine/README.md) - Runs [Jest](https://github.com/jestjs/jest) (for Javascript tests) and processes coverage report
    - [Vitest](extensions/vitest_unit_test_engine/README.md) - Runs [Vitest](https://github.com/vitest-dev/vitest) (for Javascript tests) and processes coverage report
    - [Multi Test Engine](extensions/multi_test_engine/README.md) - Allows configuration of multiple unit test engines (useful for repositories that contain tests for different languages, i.e. PHP and JS for a repo that contains server-side (PHP) and client side (Javascript) tests)

Acknowledgements
----------------

[](#acknowledgements)

Some of these linters come from forks of other linters found on github that are generally not maintained anymore (or we forked due to some difference in functionality that worked better for us). Check out the README for each linter, which will link back to the original project.

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance59

Moderate activity, may be stable

Popularity18

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 88.2% 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 ~179 days

Total

3

Last Release

262d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/136907?v=4)[Jay Klehr](/maintainers/jaydiablo)[@jaydiablo](https://github.com/jaydiablo)

---

Top Contributors

[![jaydiablo](https://avatars.githubusercontent.com/u/136907?v=4)](https://github.com/jaydiablo "jaydiablo (15 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (2 commits)")

###  Code Quality

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/diablomedia-arcanist-extensions/health.svg)

```
[![Health](https://phpackages.com/badges/diablomedia-arcanist-extensions/health.svg)](https://phpackages.com/packages/diablomedia-arcanist-extensions)
```

###  Alternatives

[phpspec/prophecy

Highly opinionated mocking framework for PHP 5.3+

8.5k551.7M682](/packages/phpspec-prophecy)[brianium/paratest

Parallel testing for PHP

2.5k118.8M754](/packages/brianium-paratest)[beberlei/assert

Thin assertion library for input validation in business models.

2.4k96.9M570](/packages/beberlei-assert)[mikey179/vfsstream

Virtual file system to mock the real file system in unit tests.

1.4k108.0M2.7k](/packages/mikey179-vfsstream)[orchestra/testbench

Laravel Testing Helper for Packages Development

2.2k39.1M32.1k](/packages/orchestra-testbench)[phpspec/phpspec

Specification-oriented BDD framework for PHP 7.1+

1.9k36.7M3.1k](/packages/phpspec-phpspec)

PHPackages © 2026

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