Reedy has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/365520 )
Change subject: Update wikimedia/composer-merge-plugin from 1.4.0 -> 1.4.1 ...................................................................... Update wikimedia/composer-merge-plugin from 1.4.0 -> 1.4.1 https://github.com/wikimedia/composer-merge-plugin/releases/tag/v1.4.1 https://github.com/wikimedia/composer-merge-plugin/compare/v1.4.0...v1.4.1 Change-Id: I50338e7f64f8eb3ff9e7177f59d93c88e08562d6 --- M composer.json M composer.lock M composer/installed.json M wikimedia/composer-merge-plugin/README.md M wikimedia/composer-merge-plugin/src/Merge/ExtraPackage.php M wikimedia/composer-merge-plugin/src/Merge/PluginState.php 6 files changed, 102 insertions(+), 62 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/vendor refs/changes/20/365520/1 diff --git a/composer.json b/composer.json index f3f0579..ff6c40d 100644 --- a/composer.json +++ b/composer.json @@ -66,7 +66,7 @@ "wikimedia/base-convert": "1.0.1", "wikimedia/cdb": "1.4.1", "wikimedia/cldr-plural-rule-parser": "1.0.0", - "wikimedia/composer-merge-plugin": "1.4.0", + "wikimedia/composer-merge-plugin": "1.4.1", "wikimedia/css-sanitizer": "1.0.2", "wikimedia/html-formatter": "1.0.1", "wikimedia/ip-set": "1.1.0", diff --git a/composer.lock b/composer.lock index b0b058d..6f6b3b1 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "cf2b26d4738f76fd8392f2930d619c42", + "content-hash": "d55a7d0dc9e1329fdbcb655ea6d663e9", "packages": [ { "name": "composer/semver", @@ -1556,16 +1556,16 @@ }, { "name": "wikimedia/composer-merge-plugin", - "version": "v1.4.0", + "version": "v1.4.1", "source": { "type": "git", "url": "https://github.com/wikimedia/composer-merge-plugin.git", - "reference": "ca453f9f13d8b05f86f20ea10be992a782e6f78c" + "reference": "81c6ac72a24a67383419c7eb9aa2b3437f2ab100" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/composer-merge-plugin/zipball/ca453f9f13d8b05f86f20ea10be992a782e6f78c", - "reference": "ca453f9f13d8b05f86f20ea10be992a782e6f78c", + "url": "https://api.github.com/repos/wikimedia/composer-merge-plugin/zipball/81c6ac72a24a67383419c7eb9aa2b3437f2ab100", + "reference": "81c6ac72a24a67383419c7eb9aa2b3437f2ab100", "shasum": "" }, "require": { @@ -1601,7 +1601,7 @@ } ], "description": "Composer plugin to merge multiple composer.json files", - "time": "2017-03-13T16:52:55+00:00" + "time": "2017-04-25T02:31:25+00:00" }, { "name": "wikimedia/css-sanitizer", diff --git a/composer/installed.json b/composer/installed.json index f3d2039..17c7d2f 100644 --- a/composer/installed.json +++ b/composer/installed.json @@ -1578,57 +1578,6 @@ ] }, { - "name": "wikimedia/composer-merge-plugin", - "version": "v1.4.0", - "version_normalized": "1.4.0.0", - "source": { - "type": "git", - "url": "https://github.com/wikimedia/composer-merge-plugin.git", - "reference": "ca453f9f13d8b05f86f20ea10be992a782e6f78c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/wikimedia/composer-merge-plugin/zipball/ca453f9f13d8b05f86f20ea10be992a782e6f78c", - "reference": "ca453f9f13d8b05f86f20ea10be992a782e6f78c", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0", - "php": ">=5.3.2" - }, - "require-dev": { - "composer/composer": "~1.0.0", - "jakub-onderka/php-parallel-lint": "~0.8", - "phpunit/phpunit": "~4.8|~5.0", - "squizlabs/php_codesniffer": "~2.1.0" - }, - "time": "2017-03-13T16:52:55+00:00", - "type": "composer-plugin", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - }, - "class": "Wikimedia\\Composer\\MergePlugin" - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Wikimedia\\Composer\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bryan Davis", - "email": "bd...@wikimedia.org" - } - ], - "description": "Composer plugin to merge multiple composer.json files" - }, - { "name": "cssjanus/cssjanus", "version": "v1.2.0", "version_normalized": "1.2.0.0", @@ -2404,5 +2353,56 @@ ], "description": "Provides library of common widgets, layouts, and windows.", "homepage": "https://www.mediawiki.org/wiki/OOjs_UI" + }, + { + "name": "wikimedia/composer-merge-plugin", + "version": "v1.4.1", + "version_normalized": "1.4.1.0", + "source": { + "type": "git", + "url": "https://github.com/wikimedia/composer-merge-plugin.git", + "reference": "81c6ac72a24a67383419c7eb9aa2b3437f2ab100" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wikimedia/composer-merge-plugin/zipball/81c6ac72a24a67383419c7eb9aa2b3437f2ab100", + "reference": "81c6ac72a24a67383419c7eb9aa2b3437f2ab100", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0", + "php": ">=5.3.2" + }, + "require-dev": { + "composer/composer": "~1.0.0", + "jakub-onderka/php-parallel-lint": "~0.8", + "phpunit/phpunit": "~4.8|~5.0", + "squizlabs/php_codesniffer": "~2.1.0" + }, + "time": "2017-04-25T02:31:25+00:00", + "type": "composer-plugin", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + }, + "class": "Wikimedia\\Composer\\MergePlugin" + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Wikimedia\\Composer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bryan Davis", + "email": "bd...@wikimedia.org" + } + ], + "description": "Composer plugin to merge multiple composer.json files" } ] diff --git a/wikimedia/composer-merge-plugin/README.md b/wikimedia/composer-merge-plugin/README.md index 8afed01..e63b847 100644 --- a/wikimedia/composer-merge-plugin/README.md +++ b/wikimedia/composer-merge-plugin/README.md @@ -24,7 +24,8 @@ Installation ------------ -Composer Merge Plugin requires [Composer 1.0.0](https://getcomposer.org/) or newer. +Composer Merge Plugin requires [Composer 1.0.0](https://getcomposer.org/) or +newer. ``` $ composer require wikimedia/composer-merge-plugin @@ -50,6 +51,7 @@ ], "recurse": true, "replace": false, + "ignore-duplicates": false, "merge-dev": true, "merge-extra": false, "merge-extra-deep": false, @@ -118,6 +120,19 @@ made by earlier files. Files are loaded in the order specified by the `include` setting with globbed files being processed in alphabetical order. +### ignore-duplicates + +By default, Composer's conflict resolution engine is used to determine which +version of a package should be installed when multiple files specify the same +package. An `"ignore-duplicates": true` setting can be provided to change to +a "first version specified wins" conflict resolution strategy. In this mode, +duplicate package declarations found in merged files will be ignored in favor +of the declarations made by earlier files. Files are loaded in the order +specified by the `include` setting with globbed files being processed in +alphabetical order. + +Note: `"replace": true` and `"ignore-duplicates": true` modes are mutually +exclusive. If both are set, `"ignore-duplicates": true` will be used. ### merge-dev @@ -190,8 +205,8 @@ License ------- -Composer Merge plugin is licensed under the MIT license. See the [`LICENSE`](LICENSE) -file for more details. +Composer Merge plugin is licensed under the MIT license. See the +[`LICENSE`](LICENSE) file for more details. --- diff --git a/wikimedia/composer-merge-plugin/src/Merge/ExtraPackage.php b/wikimedia/composer-merge-plugin/src/Merge/ExtraPackage.php index c90b4b7..85997ae 100644 --- a/wikimedia/composer-merge-plugin/src/Merge/ExtraPackage.php +++ b/wikimedia/composer-merge-plugin/src/Merge/ExtraPackage.php @@ -275,9 +275,17 @@ array $merge, $state ) { + if ($state->ignoreDuplicateLinks() && $state->replaceDuplicateLinks()) { + $this->logger->warning("Both replace and ignore-duplicates are true. These are mutually exclusive."); + $this->logger->warning("Duplicate packages will be ignored."); + } + $dups = array(); foreach ($merge as $name => $link) { - if (!isset($origin[$name]) || $state->replaceDuplicateLinks()) { + if (isset($origin[$name]) && $state->ignoreDuplicateLinks()) { + $this->logger->info("Ignoring duplicate <comment>{$name}</comment>"); + continue; + } elseif (!isset($origin[$name]) || $state->replaceDuplicateLinks()) { $this->logger->info("Merging <comment>{$name}</comment>"); $origin[$name] = $link; } else { diff --git a/wikimedia/composer-merge-plugin/src/Merge/PluginState.php b/wikimedia/composer-merge-plugin/src/Merge/PluginState.php index 670c328..7aa90ac 100644 --- a/wikimedia/composer-merge-plugin/src/Merge/PluginState.php +++ b/wikimedia/composer-merge-plugin/src/Merge/PluginState.php @@ -55,6 +55,11 @@ protected $replace = false; /** + * @var bool $ignore + */ + protected $ignore = false; + + /** * Whether to merge the -dev sections. * @var bool $mergeDev */ @@ -139,6 +144,7 @@ 'require' => array(), 'recurse' => true, 'replace' => false, + 'ignore-duplicates' => false, 'merge-dev' => true, 'merge-extra' => false, 'merge-extra-deep' => false, @@ -153,6 +159,7 @@ $config['require'] : array($config['require']); $this->recurse = (bool)$config['recurse']; $this->replace = (bool)$config['replace']; + $this->ignore = (bool)$config['ignore-duplicates']; $this->mergeDev = (bool)$config['merge-dev']; $this->mergeExtra = (bool)$config['merge-extra']; $this->mergeExtraDeep = (bool)$config['merge-extra-deep']; @@ -347,6 +354,16 @@ } /** + * Should duplicate links be ignored? + * + * @return bool + */ + public function ignoreDuplicateLinks() + { + return $this->ignore; + } + + /** * Should the extra section be merged? * * By default, the extra section is not merged and there will be many -- To view, visit https://gerrit.wikimedia.org/r/365520 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I50338e7f64f8eb3ff9e7177f59d93c88e08562d6 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/vendor Gerrit-Branch: master Gerrit-Owner: Reedy <re...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits