Composer Viz ############ |Packagist| |GitLab| |GitHub| |Bitbucket| |Gitea| A Composer plugin to generate dependency graph by GraphViz inspired by ``bundle viz``. Installation ============ Install globally so you can use it on any project: .. code-block:: bash composer global require arokettu/composer-viz:^2.2 The system should have GraphViz_ installed. Usage ===== .. code-block:: composer viz [-o|--output OUTPUT] [-f|--format FORMAT] [--no-dev] [--no-php] [--no-ext] [--no-platform] [--no-pkg-versions] [--no-dep-versions] [--no-versions] -o OUTPUT, --output=OUTPUT Set output file. If not set, the result will be displayed from temporary file -f FORMAT, --format=FORMAT Set output file format. Useful if it is not detected from ``--output`` --no-dev Do not show development dependencies --no-php Do not show PHP as a dependency (php and php64) --no-ext Do not show extensions as dependencies --no-platform ``--no-php`` + ``--no-ext`` --no-pkg-versions Do not show package versions on graph vertices --no-dep-versions Do not show package versions on graph edges --no-versions ``--no-pkg-versions`` + ``--no-dep-versions`` Examples ======== Running composer-viz 2.3.0 for itself: ``composer viz --output=composer-viz-2.3.0.svg`` .. figure:: images/composer-viz-2.3.0.svg :width: 100% :alt: selfie More artificial example that shows more features (for ``sandbox/composer.json``): .. figure:: images/composer-viz-example.svg :width: 100% :alt: example Vertices: * Green: root package * White: regular package * Grey: development dependency * Blue: platform package (PHP, extensions, Composer API) * Red: package is provided by another package Edges: * Black: regular dependency * Grey: development dependency * Red: 'provided by' relationship GraphViz ======== You should install GraphViz on your system first. Use this in Ubuntu: .. code-block:: bash sudo apt-get install graphviz Sometimes you may need additional packages like in Fedora you should also install ``graphviz-gd`` to be able to export images, like this: .. code-block:: bash # dot, svg and postscript work without graphviz-gd but png, jpeg and gif don't sudo dnf install graphviz graphviz-gd License ======= The library is available as open source under the terms of the `MIT License`_. .. _MIT License: https://opensource.org/licenses/MIT .. |Packagist| image:: https://img.shields.io/packagist/v/arokettu/composer-viz.svg?style=flat-square :target: https://packagist.org/packages/arokettu/composer-viz .. |GitHub| image:: https://img.shields.io/badge/get%20on-GitHub-informational.svg?style=flat-square&logo=github :target: https://github.com/arokettu/composer-viz .. |GitLab| image:: https://img.shields.io/badge/get%20on-GitLab-informational.svg?style=flat-square&logo=gitlab :target: https://gitlab.com/sandfox/composer-viz .. |Bitbucket| image:: https://img.shields.io/badge/get%20on-Bitbucket-informational.svg?style=flat-square&logo=bitbucket :target: https://bitbucket.org/sandfox/composer-viz .. |Gitea| image:: https://img.shields.io/badge/get%20on-Gitea-informational.svg?style=flat-square&logo=gitea :target: https://sandfox.org/sandfox/composer-viz