Skip to content

Conversation

cweiske
Copy link

@cweiske cweiske commented Nov 28, 2024

When having huge dependency lists, separate tables for direct and indirect dependencies are helpful - you see which changes were desired, and which ones came only automatically.

Having direct prod+dev changes first eases seeing wanted changes.

Builds upon #41
Resolves: #37

Short example

$ composer-lock-diff --no-links
+------------------------------------+-------------+-----------------------+
| Production Changes                 | From        | To                    |
+------------------------------------+-------------+-----------------------+
| andersundsehr/aus-driver-amazon-s3 | 1.12.1      | 1.13.1                |
| felixnagel/generic-gallery         | 4.3.0       | 5.2.0                 |
| fluidtypo3/flux                    | 9.7.2       | 9.7.4                 |
+------------------------------------+-------------+-----------------------+

+-------------------+---------+---------+
| Dev Changes       | From    | To      |
+-------------------+---------+---------+
| mogic/mogic-phpcs | d81fefd | 0eb8337 |
+-------------------+---------+---------+

+------------------------------------+---------+---------+
| Indirect Production Changes        | From    | To      |
+------------------------------------+---------+---------+
| aws/aws-crt-php                    | v1.0.2  | v1.2.7  |
| aws/aws-sdk-php                    | 3.255.7 | 3.331.0 |
| beberlei/assert                    | v3.3.2  | v3.3.3  |
| clue/stream-filter                 | v1.6.0  | v1.7.0  |
+------------------------------------+---------+---------+

+----------------------+---------+---------+
| Indirect Dev Changes | From    | To      |
+----------------------+---------+---------+
| phpstan/phpstan      | 1.12.10 | 1.12.11 |
+----------------------+---------+---------+

Long example

Real world

$ composer-lock-diff --no-links
+------------------------------------+-------------+-----------------------+
| Production Changes                 | From        | To                    |
+------------------------------------+-------------+-----------------------+
| andersundsehr/aus-driver-amazon-s3 | 1.12.1      | 1.13.1                |
| felixnagel/generic-gallery         | 4.3.0       | 5.2.0                 |
| fluidtypo3/flux                    | 9.7.2       | 9.7.4                 |
| fluidtypo3/vhs                     | 6.1.2       | 6.1.3                 |
| helhum/typo3-console               | v6.7.6      | v7.1.6                |
| jigal/t3adminer                    | 10.0.1      | 12.1.0                |
| mogic/t3x-nh2020                   | dev-develop | dev-SRH-1440-typo3v11 |
| mogic/t3x-srh                      | dev-develop | dev-SRH-1440-typo3v11 |
| mogic/t3x-srh-service              | dev-develop | dev-SRH-1440-typo3v11 |
| ssch/typo3-encore                  | v5.0.2      | v5.0.7                |
| symfony/webpack-encore-bundle      | v1.16.0     | v1.17.2               |
| tomasnorre/crawler                 | 11.0.7      | 11.0.10               |
| typo3/cms-backend                  | v10.4.37    | v11.5.41              |
| typo3/cms-belog                    | v10.4.37    | v11.5.41              |
| typo3/cms-beuser                   | v10.4.37    | v11.5.41              |
| typo3/cms-core                     | v10.4.37    | v11.5.41              |
| typo3/cms-extbase                  | v10.4.37    | v11.5.41              |
| typo3/cms-extensionmanager         | v10.4.37    | v11.5.41              |
| typo3/cms-felogin                  | v10.4.37    | v11.5.41              |
| typo3/cms-filelist                 | v10.4.37    | v11.5.41              |
| typo3/cms-filemetadata             | v10.4.37    | v11.5.41              |
| typo3/cms-fluid                    | v10.4.37    | v11.5.41              |
| typo3/cms-fluid-styled-content     | v10.4.37    | v11.5.41              |
| typo3/cms-form                     | v10.4.37    | v11.5.41              |
| typo3/cms-frontend                 | v10.4.37    | v11.5.41              |
| typo3/cms-impexp                   | v10.4.37    | v11.5.41              |
| typo3/cms-indexed-search           | v10.4.37    | v11.5.41              |
| typo3/cms-info                     | v10.4.37    | v11.5.41              |
| typo3/cms-install                  | v10.4.37    | v11.5.41              |
| typo3/cms-lowlevel                 | v10.4.37    | v11.5.41              |
| typo3/cms-recordlist               | v10.4.37    | v11.5.41              |
| typo3/cms-redirects                | v10.4.37    | v11.5.41              |
| typo3/cms-rte-ckeditor             | v10.4.37    | v11.5.41              |
| typo3/cms-scheduler                | v10.4.37    | v11.5.41              |
| typo3/cms-seo                      | v10.4.37    | v11.5.41              |
| typo3/cms-setup                    | v10.4.37    | v11.5.41              |
| typo3/cms-sys-note                 | v10.4.37    | v11.5.41              |
| typo3/cms-t3editor                 | v10.4.37    | v11.5.41              |
| typo3/cms-tstemplate               | v10.4.37    | v11.5.41              |
| typo3/cms-viewpage                 | v10.4.37    | v11.5.41              |
| typo3/cms-workspaces               | v10.4.37    | v11.5.41              |
+------------------------------------+-------------+-----------------------+

+-------------------+---------+---------+
| Dev Changes       | From    | To      |
+-------------------+---------+---------+
| mogic/mogic-phpcs | d81fefd | 0eb8337 |
+-------------------+---------+---------+

+------------------------------------+---------+---------+
| Indirect Production Changes        | From    | To      |
+------------------------------------+---------+---------+
| aws/aws-crt-php                    | v1.0.2  | v1.2.7  |
| aws/aws-sdk-php                    | 3.255.7 | 3.331.0 |
| beberlei/assert                    | v3.3.2  | v3.3.3  |
| clue/stream-filter                 | v1.6.0  | v1.7.0  |
| composer/semver                    | 3.3.2   | 3.4.3   |
| doctrine/annotations               | 1.14.3  | 1.14.4  |
| doctrine/deprecations              | v1.1.1  | 1.1.3   |
| egulias/email-validator            | 2.1.25  | 3.2.6   |
| enshrined/svg-sanitize             | 0.15.4  | 0.18.0  |
| guzzlehttp/guzzle                  | 6.5.8   | 7.9.2   |
| guzzlehttp/promises                | 1.5.3   | 2.0.4   |
| guzzlehttp/psr7                    | 1.9.1   | 2.7.0   |
| jean85/pretty-package-versions     | 2.0.5   | 2.1.0   |
| lolli42/finediff                   | 1.0.2   | 1.0.4   |
| masterminds/html5                  | 2.8.0   | 2.9.0   |
| mtdowling/jmespath.php             | 2.6.1   | 2.8.0   |
| php-http/client-common             | 2.6.0   | 2.7.2   |
| php-http/discovery                 | 1.14.3  | 1.20.0  |
| php-http/httplug                   | 2.3.0   | 2.4.1   |
| php-http/message                   | 1.13.0  | 1.16.2  |
| php-http/message-factory           | v1.0.2  | 1.1.0   |
| php-http/promise                   | 1.1.0   | 1.3.1   |
| phpdocumentor/reflection-docblock  | 5.3.0   | 5.6.0   |
| phpdocumentor/type-resolver        | 1.7.2   | 1.10.0  |
| phpstan/phpdoc-parser              | 1.23.0  | 1.33.0  |
| psr/http-client                    | 1.0.2   | 1.0.3   |
| psr/http-factory                   | 1.0.2   | 1.1.0   |
| sentry/sdk                         | 3.3.0   | 3.6.0   |
| sentry/sentry                      | 3.12.0  | 3.22.1  |
| symfony/asset                      | v5.4.13 | v5.4.45 |
| symfony/cache                      | v5.4.25 | v5.4.46 |
| symfony/cache-contracts            | v2.5.2  | v2.5.4  |
| symfony/config                     | v5.4.21 | v5.4.46 |
| symfony/dependency-injection       | v5.4.25 | v5.4.48 |
| symfony/deprecation-contracts      | v2.5.3  | v2.5.4  |
| symfony/error-handler              | v5.4.17 | v5.4.46 |
| symfony/event-dispatcher           | v5.4.22 | v5.4.45 |
| symfony/event-dispatcher-contracts | v2.5.2  | v2.5.4  |
| symfony/expression-language        | v5.4.21 | v5.4.45 |
| symfony/http-client                | v5.4.17 | v5.4.48 |
| symfony/http-client-contracts      | v2.5.2  | v2.5.4  |
| symfony/http-foundation            | v5.4.25 | v5.4.48 |
| symfony/http-kernel                | v5.4.18 | v5.4.48 |
| symfony/mailer                     | v5.4.22 | v5.4.45 |
| symfony/mime                       | v5.4.23 | v5.4.45 |
| symfony/options-resolver           | v5.4.11 | v5.4.45 |
| symfony/polyfill-intl-icu          | v1.27.0 | v1.31.0 |
| symfony/polyfill-intl-idn          | v1.27.0 | v1.31.0 |
| symfony/polyfill-php72             | v1.27.0 | REMOVED |
| symfony/property-access            | v5.4.22 | v5.4.45 |
| symfony/property-info              | v5.4.24 | v5.4.48 |
| symfony/routing                    | v5.4.25 | v5.4.48 |
| symfony/service-contracts          | v2.5.3  | v2.5.4  |
| symfony/var-dumper                 | v5.4.17 | v5.4.48 |
| symfony/var-exporter               | v5.4.21 | v5.4.45 |
| symfony/web-link                   | v5.4.3  | v5.4.45 |
| typo3/class-alias-loader           | v1.1.4  | v1.2.0  |
| typo3/cms-cli                      | 2.0.0   | 3.1.2   |
| typo3/cms-composer-installers      | v3.1.3  | v3.1.4  |
| typo3/html-sanitizer               | v2.1.1  | v2.2.0  |
| bacon/bacon-qr-code                | NEW     | 2.0.8   |
| christian-riesen/base32            | NEW     | 1.6.0   |
| dasprid/enum                       | NEW     | 1.0.6   |
| helhum/php-error-reporting         | NEW     | v1.0.1  |
| symfony/lock                       | NEW     | v5.4.45 |
| symfony/polyfill-php83             | NEW     | v1.31.0 |
| symfony/rate-limiter               | NEW     | v5.4.47 |
+------------------------------------+---------+---------+

+----------------------+---------+---------+
| Indirect Dev Changes | From    | To      |
+----------------------+---------+---------+
| phpstan/phpstan      | 1.12.10 | 1.12.11 |
+----------------------+---------+---------+

djonas-noip and others added 2 commits November 28, 2024 08:33
Builds upon davidrjonas#41
Resolves: davidrjonas#37

Example:

$ composer-lock-diff --no-links
+------------------------------------+-------------+-----------------------+
| Production Changes                 | From        | To                    |
+------------------------------------+-------------+-----------------------+
| andersundsehr/aus-driver-amazon-s3 | 1.12.1      | 1.13.1                |
| felixnagel/generic-gallery         | 4.3.0       | 5.2.0                 |
| fluidtypo3/flux                    | 9.7.2       | 9.7.4                 |
+------------------------------------+-------------+-----------------------+

+-------------------+---------+---------+
| Dev Changes       | From    | To      |
+-------------------+---------+---------+
| mogic/mogic-phpcs | d81fefd | 0eb8337 |
+-------------------+---------+---------+

+------------------------------------+---------+---------+
| Indirect Production Changes        | From    | To      |
+------------------------------------+---------+---------+
| aws/aws-crt-php                    | v1.0.2  | v1.2.7  |
| aws/aws-sdk-php                    | 3.255.7 | 3.331.0 |
| beberlei/assert                    | v3.3.2  | v3.3.3  |
| clue/stream-filter                 | v1.6.0  | v1.7.0  |
+------------------------------------+---------+---------+

+----------------------+---------+---------+
| Indirect Dev Changes | From    | To      |
+----------------------+---------+---------+
| phpstan/phpstan      | 1.12.10 | 1.12.11 |
+----------------------+---------+---------+
@cweiske
Copy link
Author

cweiske commented Dec 12, 2024

Another production example:

$ composer-lock-diff --no-links --md
| Production Changes | From    | To     |
|--------------------|---------|--------|
| fluidtypo3/flux    | 10.0.10 | 10.1.0 |

| Indirect Production Changes       | From    | To      |
|-----------------------------------|---------|---------|
| aws/aws-sdk-php                   | 3.331.0 | 3.334.4 |
| doctrine/deprecations             | 1.1.3   | 1.1.4   |
| firebase/php-jwt                  | v6.10.0 | v6.10.2 |
| lolli42/finediff                  | 1.0.4   | 1.1.1   |
| phpdocumentor/reflection-docblock | 5.6.0   | 5.6.1   |
| psr/cache                         | 1.0.1   | 3.0.0   |
| psr/link                          | 1.0.0   | 2.0.1   |
| symfony/asset                     | v5.4.45 | v6.4.13 |
| symfony/cache                     | v5.4.46 | v6.4.16 |
| symfony/cache-contracts           | v2.5.4  | v3.5.1  |
| symfony/deprecation-contracts     | v2.5.4  | v3.5.1  |
| symfony/error-handler             | v5.4.46 | v6.3.12 |
| symfony/event-dispatcher          | v5.4.45 | v6.4.13 |
| symfony/http-client               | v5.4.48 | v6.2.13 |
| symfony/http-client-contracts     | v2.5.4  | v3.5.2  |
| symfony/http-kernel               | v5.4.48 | v6.0.20 |
| symfony/lock                      | v5.4.45 | v6.4.13 |
| symfony/process                   | v5.4.47 | v6.4.15 |
| symfony/string                    | v5.4.47 | v6.4.15 |
| symfony/var-dumper                | v5.4.48 | v6.4.15 |
| symfony/var-exporter              | v5.4.45 | v7.2.0  |
| symfony/web-link                  | v5.4.45 | v6.4.13 |
| typo3/phar-stream-wrapper         | v3.1.7  | v3.1.8  |
| typo3fluid/fluid                  | 2.7.4   | 2.15.0  |

| Indirect Dev Changes    | From    | To      |
|-------------------------|---------|---------|
| league/flysystem        | 2.5.0   | 3.29.1  |
| league/flysystem-memory | 2.0.6   | 3.29.0  |
| nette/utils             | v3.2.10 | v4.0.5  |
| phpstan/phpstan         | 1.12.11 | 1.12.12 |
| league/flysystem-local  | NEW     | 3.29.0  |

@gisostallenberg
Copy link

@davidrjonas I really like this to be added. What is holding this back?
Can I help to make this complete?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Easily identify direct composer dependencies

3 participants