All Projects → IonBazan → composer-diff

IonBazan / composer-diff

Licence: MIT license
Compares composer.lock changes and generates Markdown report so you can use it in PR description.

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to composer-diff

Composer Lock Diff
See what has changed after a composer update
Stars: ✭ 154 (+201.96%)
Mutual labels:  diff, composer, lock
Ansible Role Composer
Ansible Role - Composer PHP Dependency Manager
Stars: ✭ 149 (+192.16%)
Mutual labels:  packagist, composer, packages
Acf Pro Installer
A composer install helper for Advanced Custom Fields PRO
Stars: ✭ 265 (+419.61%)
Mutual labels:  packagist, composer, composer-plugin
Private Composer Installer
Composer install helper outsourcing sensitive keys from the package URL into environment variables
Stars: ✭ 168 (+229.41%)
Mutual labels:  packagist, composer, composer-plugin
composer-localdev-plugin
Composer Plugin for local development
Stars: ✭ 31 (-39.22%)
Mutual labels:  packagist, composer, composer-plugin
composer-velocita
Velocita - Composer plugin for transparent caching
Stars: ✭ 26 (-49.02%)
Mutual labels:  packagist, composer, composer-plugin
Awesome Composer
😎 A curated awesome list for Composer, Packagist, Satis, Plugins, Scripts, Composer related resources, tutorials.
Stars: ✭ 738 (+1347.06%)
Mutual labels:  packagist, composer, composer-plugin
Hprose Php
Hprose is a cross-language RPC. This project is Hprose 3.0 for PHP
Stars: ✭ 1,952 (+3727.45%)
Mutual labels:  packagist, composer
Asset Packagist
Asset Packagist
Stars: ✭ 235 (+360.78%)
Mutual labels:  packagist, composer
private-packagist-api-client
Private Packagist API Client
Stars: ✭ 28 (-45.1%)
Mutual labels:  packagist, composer
package-wizard
Package Wizard is a library for creating a new packages using CLI tool.
Stars: ✭ 61 (+19.61%)
Mutual labels:  packages, composer-plugin
Packeton
📦 Private, self-hosted Packagist/Composer/Satis repository with unlimited private repos.
Stars: ✭ 115 (+125.49%)
Mutual labels:  packagist, composer
Satis
Simple static Composer repository generator - For a full private Composer repo use Private Packagist
Stars: ✭ 2,722 (+5237.25%)
Mutual labels:  packagist, composer
phpchartjs
A PHP library that makes it easy to generate data for ChartJS.
Stars: ✭ 24 (-52.94%)
Mutual labels:  composer, lock
Laravel Paket
Composer GUI. Manage Laravel dependencies from web interface without switching to command line!
Stars: ✭ 143 (+180.39%)
Mutual labels:  packagist, composer
Security Advisories
A database of PHP security advisories
Stars: ✭ 1,740 (+3311.76%)
Mutual labels:  packagist, composer
packagist
🐳 Dockette out-of-box Packagist (Nginx / Solr 6 / PHP 7.1+FPM)
Stars: ✭ 32 (-37.25%)
Mutual labels:  packagist, composer
ip
Immutable value object for IPv4 and IPv6 addresses, including helper methods and Doctrine support.
Stars: ✭ 212 (+315.69%)
Mutual labels:  packagist, composer
composer-patches-plugin
Plugin for composer to apply patches onto dependencies.
Stars: ✭ 75 (+47.06%)
Mutual labels:  composer, composer-plugin
Keygen Php
A fluent PHP random key generator.
Stars: ✭ 93 (+82.35%)
Mutual labels:  packagist, composer

Composer Diff Plugin

PHP 5.3+ | 7.x | 8.x Composer v1 | v2 Dependencies: 0 Latest version GitHub Workflow Status Codecov Mutation testing badge Downloads License

Generates packages changes report in Markdown format by comparing composer.lock files. Compares with last-commited changes by default.

Now available as GitHub Action!

preview

Installation

composer global require ion-bazan/composer-diff

Usage

composer diff # Displays packages changed in current git tree compared with HEAD
composer diff --help # Display detailed usage instructions

Example output

Prod Packages Operation Base Target
psr/event-dispatcher New - 1.0.0
symfony/deprecation-contracts New - v2.1.2
symfony/event-dispatcher Upgraded v2.8.52 v5.1.2
symfony/event-dispatcher-contracts New - v2.1.2
symfony/polyfill-php80 New - v1.17.1
php New - >=5.3
Dev Packages Operation Base Target
phpunit/php-code-coverage Downgraded 8.0.2 7.0.10
phpunit/php-file-iterator Downgraded 3.0.2 2.0.2
phpunit/php-text-template Downgraded 2.0.1 1.2.1
phpunit/php-timer Downgraded 5.0.0 2.1.2
phpunit/php-token-stream Downgraded 4.0.2 3.1.1
phpunit/phpunit Downgraded 9.2.5 8.5.8
sebastian/code-unit-reverse-lookup Downgraded 2.0.1 1.0.1
sebastian/comparator Downgraded 4.0.2 3.0.2
sebastian/diff Downgraded 4.0.1 3.0.2
sebastian/environment Downgraded 5.1.1 4.2.3
sebastian/exporter Downgraded 4.0.1 3.1.2
sebastian/global-state Downgraded 4.0.0 3.0.0
sebastian/object-enumerator Downgraded 4.0.1 3.0.3
sebastian/object-reflector Downgraded 2.0.1 1.1.1
sebastian/recursion-context Downgraded 4.0.1 3.0.0
sebastian/resource-operations Downgraded 3.0.1 2.0.1
sebastian/type Downgraded 2.1.0 1.1.3
sebastian/version Downgraded 3.0.0 2.0.1
phpunit/php-invoker Removed 3.0.1 -
sebastian/code-unit Removed 1.0.3 -

Options

  • --base (-b) - path, URL or git ref to original composer.lock file
  • --target (-t) - path, URL or git ref to modified composer.lock file
  • --no-dev - ignore dev dependencies (require-dev)
  • --no-prod - ignore prod dependencies (require)
  • --with-platform (-p) - include platform dependencies (PHP, extensions, etc.)
  • --with-links (-l) - include compare/release URLs
  • --format (-f) - output format (mdtable, mdlist, json, github) - default: mdtable
  • --gitlab-domains - custom gitlab domains for compare/release URLs - default: use composer config

Advanced usage

composer diff master # Compare current composer.lock with the one on master branch
composer diff master:composer.lock develop:composer.lock -p # Compare master and develop branches, including platform dependencies
composer diff --no-dev # ignore dev dependencies
composer diff -p # include platform dependencies
composer diff -f json # Output as JSON instead of table

Strict mode

To help you control your dependencies, you may pass --strict option when running in CI. If there are any changes detected, a non-zero exit code will be returned.

Exit code of the command is built using following bit flags:

  • 0 - OK.
  • 1 - General error.
  • 2 - There were changes in prod packages.
  • 4 - There were changes is dev packages.
  • 8 - There were downgrades in prod packages.
  • 16 - There were downgrades in dev packages.

You may check for individual flags or simply check if the status is greater or equal 8 if you don't want to downgrade any package.

Similar packages

While there are several existing packages offering similar functionality:

This package offers:

  • Support for wide range of PHP versions, starting from 5.3.2 up to 8.0 and newer.
  • No dependencies if you run it as composer plugin.
  • Both standalone executable and composer plugin interface - you choose how you want to use it.
  • Allows generating reports in several formats.
  • Extra Gitlab domains support.
  • GitHub Action with example workflow
  • 100% test coverage.
  • MIT license.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].