PHPackages                             b3kn/clover-merge-with-psr - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. b3kn/clover-merge-with-psr

ActiveProject[Utility &amp; Helpers](/categories/utility)

b3kn/clover-merge-with-psr
==========================

Merge two or more clover XML files.

1.0.6(2y ago)0203.8k—2.5%MITPHP

Since Nov 29Pushed 2y agoCompare

[ Source](https://github.com/b3kN/CloverMerge)[ Packagist](https://packagist.org/packages/b3kn/clover-merge-with-psr)[ RSS](/packages/b3kn-clover-merge-with-psr/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (7)Versions (2)Used By (0)

CloverMerge
===========

[](#clovermerge)

[![Build Status](https://camo.githubusercontent.com/4db4d78e09d57717974771f5c77aea02bdfc529a617482449677fa37fe1e6a57/68747470733a2f2f7472617669732d63692e6f72672f64307832662f436c6f7665724d657267652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/d0x2f/CloverMerge)[![Coverage Status](https://camo.githubusercontent.com/23f9cddde769a42a8acfe2241f3c3ffada403129e338ce4175f6ea29374505d5/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f64307832662f436c6f7665724d657267652f62616467652e7376673f6272616e63683d6d6173746572)](https://coveralls.io/github/d0x2f/CloverMerge?branch=master)[![Maintainability](https://camo.githubusercontent.com/46e0689b12f2a414f045680706f2456df511c3794e04c247a8f2ae5db60c988c/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f37666638363933333936316465343436643539342f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/d0x2f/CloverMerge/maintainability)

PHP utility to merge two or more clover files into a single document.

Intended to be used in a build pipeline to merge clover output from multiple testing frameworks.

I spent a weekend writing this so you don't have to.

Standalone
==========

[](#standalone)

Install
-------

[](#install)

Requires composer.

```
$ git clone https://github.com/d0x2f/CloverMerge.git
$ composer install
```

Run
---

[](#run)

```
$ ./clover-merge -o combined.xml input1.xml input2.xml
Files Discovered: 332
Final Coverage: 14534/14558 (99.84%)
```

As a Composer Dependency
========================

[](#as-a-composer-dependency)

Install
-------

[](#install-1)

In your project root directory:

```
$ composer require d0x2f/clover-merge
```

Run
---

[](#run-1)

```
$ ./vendor/bin/clover-merge -o combined.xml input1.xml input2.xml
Files Discovered: 332
Final Coverage: 14534/14558 (99.84%)
```

As a Docker Image
=================

[](#as-a-docker-image)

Install
-------

[](#install-2)

```
$ docker pull d0x2f/clover-merge
```

Run
---

[](#run-2)

```
$ docker run --rm -v $(pwd):/build clover-merge -o /build/combined.xml /build/input1.xml /build/input2.xml
Files Discovered: 332
Final Coverage: 14534/14558 (99.84%)
```

Usage
=====

[](#usage)

```
usage: clover-merge [] []

OPTIONS
  --enforce, -e   Exit with failure if final coverage is below the given
                  threshold
  --help, -?      Display this help.
  --mode, -m      merge mode: additive, exclusive or inclusive (default)
  --output, -o    output file path

ARGUMENTS
  paths   input file paths

```

Modes
-----

[](#modes)

- Additive - Lines must be present in the first input file for them to be included.
- Exclusive - Lines must be present in all input files for them to be included.
- Inclusive - Lines from all files are included.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity31

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

901d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a356cdfacb23778607261d1060615cb0f5e8b0c0e35456e94a5ba0d7b015b334?d=identicon)[b3kN](/maintainers/b3kN)

---

Top Contributors

[![d0x2f](https://avatars.githubusercontent.com/u/8149130?v=4)](https://github.com/d0x2f "d0x2f (36 commits)")

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/b3kn-clover-merge-with-psr/health.svg)

```
[![Health](https://phpackages.com/badges/b3kn-clover-merge-with-psr/health.svg)](https://phpackages.com/packages/b3kn-clover-merge-with-psr)
```

###  Alternatives

[captainhook/plugin-composer

Composer-Plugin handling your git-hooks

201.9M169](/packages/captainhook-plugin-composer)[ecoapm/libyear

A simple measure of software dependency freshness

28302.5k](/packages/ecoapm-libyear)[ramsey/devtools

A Composer plugin to aid PHP library and application development.

7134.7k26](/packages/ramsey-devtools)[malios/php-to-ascii-table

A PHP library to generate plain text tables.

30118.8k1](/packages/malios-php-to-ascii-table)[samsara/fermat

A library providing math and statistics operations for numbers of arbitrary size.

653.1k3](/packages/samsara-fermat)[shrink0r/workflux

Finite state machine for php.

375.6k1](/packages/shrink0r-workflux)

PHPackages © 2026

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