wp-cli-bundle
wp-cli-bundle copied to clipboard
Consider removing package-command from the bundle
Given a wodpress project using composer to manage dependencies.
Running composer require wp-cli/wp-cli-bundle
results in the following dependency tree:
composer show --tree wp-cli/wp-cli-bundle
wp-cli/wp-cli-bundle v2.10.0
βββwp-cli/cache-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/checksum-command ^2.1
β βββwp-cli/wp-cli ^2.5
βββwp-cli/config-command ^2.1
β βββwp-cli/wp-cli ^2.5
β βββwp-cli/wp-config-transformer ^1.2.1
βββwp-cli/core-command ^2.1
β βββcomposer/semver ^1.4 || ^2 || ^3
β βββwp-cli/wp-cli ^2.5.1
βββwp-cli/cron-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/db-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/embed-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/entity-command ^2
β βββwp-cli/wp-cli ^2.10
βββwp-cli/eval-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/export-command ^2
β βββnb/oxymel ~0.1.0
β βββwp-cli/wp-cli ^2.5
βββwp-cli/extension-command ^2.1
β βββcomposer/semver ^1.4 || ^2 || ^3
β βββwp-cli/wp-cli ^2.10
βββwp-cli/i18n-command ^2
β βββeftec/bladeone 3.52
β βββgettext/gettext ^4.8
β β βββgettext/languages ^2.3
β βββmck89/peast ^1.13.11
β βββwp-cli/wp-cli ^2.5
βββwp-cli/import-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/language-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/maintenance-mode-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/media-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/package-command ^2.1
β βββcomposer/composer ^1.10.23 || ^2.2.17
β β βββcomposer/ca-bundle ^1.0
β β βββcomposer/class-map-generator ^1.0
β β β βββcomposer/pcre ^2.1 || ^3.1
β β β βββsymfony/finder ^4.4 || ^5.3 || ^6 || ^7
β β βββcomposer/metadata-minifier ^1.0
β β βββcomposer/pcre ^2.1 || ^3.1
β β βββcomposer/semver ^3.2.5
β β βββcomposer/spdx-licenses ^1.5.7
β β βββcomposer/xdebug-handler ^2.0.2 || ^3.0.3
β β β βββcomposer/pcre ^1 || ^2 || ^3
β β β βββpsr/log ^1 || ^2 || ^3
β β βββjustinrainbow/json-schema ^5.2.11
β β βββpsr/log ^1.0 || ^2.0 || ^3.0
β β βββreact/promise ^2.8 || ^3
β β βββseld/jsonlint ^1.4
β β βββseld/phar-utils ^1.2
β β βββseld/signal-handler ^2.0
β β βββsymfony/console ^5.4.11 || ^6.0.11 || ^7
β β β βββsymfony/polyfill-mbstring ~1.0
β β β βββsymfony/service-contracts ^2.5|^3
β β β β βββpsr/container ^1.1|^2.0
β β β βββsymfony/string ^6.4|^7.0
β β β βββsymfony/polyfill-ctype ~1.8
β β β βββsymfony/polyfill-intl-grapheme ~1.0
β β β βββsymfony/polyfill-intl-normalizer ~1.0
β β β βββsymfony/polyfill-mbstring ~1.0
β β βββsymfony/filesystem ^5.4 || ^6.0 || ^7
β β β βββsymfony/polyfill-ctype ~1.8
β β β βββsymfony/polyfill-mbstring ~1.8
β β βββsymfony/finder ^5.4 || ^6.0 || ^7
β β βββsymfony/polyfill-php73 ^1.24
β β βββsymfony/polyfill-php80 ^1.24
β β βββsymfony/polyfill-php81 ^1.24
β β βββsymfony/process ^5.4 || ^6.0 || ^7
β βββwp-cli/wp-cli ^2.8
βββwp-cli/rewrite-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/role-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/scaffold-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/search-replace-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/server-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/shell-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/super-admin-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/widget-command ^2
β βββwp-cli/wp-cli ^2.5
βββwp-cli/wp-cli ^2.10.0
βββmustache/mustache ^2.14.1
βββsymfony/finder >2.7
βββwp-cli/mustangostang-spyc ^0.6.3
βββwp-cli/php-cli-tools ~0.11.2
That's 64 packages, 30 of which are wp-cli/*
packages.
Of the remaining 34, 20 are only required by the wp-cli/package-command
whose sole dependency outside of wp-cli/wp-cli
is... composer/composer
:raised_eyebrow:
From its documentation, the purpose of wp-cli/package-command
is to manage globally installed wp-cli
commands.
Why would someone installing wp-cli-bundle
inside a project need/want a command to manage global wp-cli packages? Moreover, since said packages are just composer packages, why can't they just be installed with composer?
IMO, running composer require some/package
should not end up installing composer inside the project's vendor directory.
It seems to me that the package command should be moved in the suggests
section of the bundle's composer.json
, and only included by default in the phar release.
And even then I highly doubt the usefulness of this command, so maybe it should just be deprecated then removed like the package index.
As a side note, removing this command would remove the largest source of dependency conflicts (see wp-cli/wp-cli#5920, wp-cli/wp-cli#5916, #606, #558, #348, etc).