Skip to content

Commit 31a33e5

Browse files
committed
Merge remote-tracking branch 'upstream/master' into patch-1
2 parents ee8847f + 1d8842f commit 31a33e5

20 files changed

+832
-592
lines changed

.gitattributes

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
.gitattributes export-ignore
2-
.gitignore export-ignore
3-
.scrutinizer.yml export-ignore
4-
.travis.yml export-ignore
1+
.* export-ignore
52
example/ export-ignore
63
phpunit.xml.dist export-ignore
74
tests/ export-ignore

.github/workflows/php.yml

+94
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
name: PHP Composer
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
run:
9+
runs-on: ubuntu-latest
10+
strategy:
11+
matrix:
12+
php-version:
13+
- "7.2"
14+
- "7.3"
15+
- "7.4"
16+
- "8.0"
17+
composer-dependencies:
18+
- 'highest'
19+
env:
20+
COMPOSER_DISABLE_XDEBUG_WARN: 1
21+
22+
name: Test PHP ${{ matrix.php-version }}
23+
steps:
24+
- name: Checkout
25+
uses: actions/checkout@v2
26+
27+
- name: Setup PHP version
28+
uses: shivammathur/setup-php@v2
29+
with:
30+
php-version: ${{ matrix.php-version }}
31+
extensions: ast
32+
coverage: xdebug
33+
tools: composer:v2
34+
35+
- name: Test Composer v1
36+
run: composer require --dev --no-update composer/composer:^1.1
37+
38+
- uses: "ramsey/composer-install@v1"
39+
with:
40+
dependency-versions: "${{ matrix.composer-dependencies }}"
41+
42+
- run: composer test
43+
44+
- name: Test Composer v2
45+
run: composer require --dev --no-update composer/composer:^2.0
46+
47+
- uses: "ramsey/composer-install@v1"
48+
with:
49+
dependency-versions: "${{ matrix.composer-dependencies }}"
50+
51+
- run: composer test
52+
- run: composer phan
53+
54+
ocular-push:
55+
runs-on: ubuntu-latest
56+
if: ${{ success() }} && github.repository == 'wikimedia/composer-merge-plugin'
57+
needs: [run]
58+
59+
steps:
60+
- name: Checkout
61+
uses: actions/checkout@v2
62+
63+
- name: Setup PHP version for coverage
64+
uses: shivammathur/setup-php@v2
65+
with:
66+
php-version: "7.2"
67+
coverage: xdebug
68+
tools: composer:v1
69+
70+
- name: Install dependencies
71+
run: composer install --prefer-dist --no-progress
72+
73+
- name: Run coverage
74+
run: composer coverage
75+
76+
- name: Get Ocular
77+
run: wget https://scrutinizer-ci.com/ocular.phar
78+
79+
- name: Upload code coverage
80+
run: php ocular.phar code-coverage:upload --format=php-clover reports/coverage.xml
81+
82+
# irc-push:
83+
# runs-on: ubuntu-latest
84+
# timeout-minutes: 15
85+
# if: ${{ always() }} && github.repository == 'wikimedia/composer-merge-plugin'
86+
# needs: [run]
87+
# steps:
88+
# - name: IRC push notification
89+
# uses: rectalogic/notify-irc@v1
90+
# if: github.event_name == 'push'
91+
# with:
92+
# channel: "#wikimedia-dev"
93+
# nickname: wikimedia-github
94+
# message: "${{ github.repository }}#${{ github.run_id }} (${{ github.ref }} - ${{ github.sha }} ${{ github.actor }}): ${{ job.status }} - https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"

.phan/config.php

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
$cfg = require __DIR__ . '/../vendor/mediawiki/mediawiki-phan-config/src/config.php';
4+
5+
$cfg['directory_list'] = array_merge(
6+
$cfg['directory_list'],
7+
[
8+
'vendor/composer/composer/src/Composer/',
9+
'vendor/composer/semver/src/',
10+
11+
]
12+
);
13+
14+
$cfg['exclude_analysis_directory_list'] = array_merge(
15+
$cfg['exclude_analysis_directory_list'],
16+
[
17+
'vendor/composer/composer/src/Composer/',
18+
'vendor/composer/semver/src/',
19+
]
20+
);
21+
22+
return $cfg;

.travis.yml

-34
This file was deleted.

README.md

+18-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[![Latest Stable Version]](https://packagist.org/packages/wikimedia/composer-merge-plugin) [![License]](https://github.com/wikimedia/composer-merge-plugin/blob/master/LICENSE)
2-
[![Build Status]](https://travis-ci.org/wikimedia/composer-merge-plugin)
2+
[![Build Status]](https://github.com/wikimedia/composer-merge-plugin/actions)
33
[![Code Coverage]](https://scrutinizer-ci.com/g/wikimedia/composer-merge-plugin/?branch=master)
44

55
Composer Merge Plugin
@@ -24,13 +24,24 @@ extensions which may be managed via Composer.
2424
Installation
2525
------------
2626

27-
Composer Merge Plugin requires [Composer 1.0.0](https://getcomposer.org/) or
28-
newer.
27+
Composer Merge Plugin 1.4.x (and older) requires Composer 1.x.
28+
29+
Composer Merge Plugin 2.0.x (and newer) is compatible with both Composer 2.x and 1.x.
2930

3031
```
3132
$ composer require wikimedia/composer-merge-plugin
3233
```
3334

35+
### Upgrading from Composer 1 to 2
36+
37+
If you are already using Composer Merge Plugin 1.4 (or older) and you are updating the plugin to 2.0 (or newer), it is recommended that you update the plugin first using Composer 1.
38+
39+
If you update the incompatible plugin using Composer 2, the plugin will be ignored:
40+
41+
> The "wikimedia/composer-merge-plugin" plugin was skipped because it requires a Plugin API version ("^1.0") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
42+
43+
Consequently, Composer will be unaware of the merged dependencies and will remove them requiring you to run `composer update` again to reinstall merged dependencies.
44+
3445

3546
Usage
3647
-----
@@ -64,13 +75,13 @@ Usage
6475
### Updating sub-levels `composer.json` files
6576

6677

67-
In order for composer-merge-plugin to install dependencies from updated or newly created sub-level `composer.json` files in your project you need to run the command:
78+
In order for Composer Merge Plugin to install dependencies from updated or newly created sub-level `composer.json` files in your project you need to run the command:
6879

6980
```
70-
$ composer update --lock
81+
$ composer update
7182
```
7283

73-
This will [instruct Composer to recalculate the file hash](https://getcomposer.org/doc/03-cli.md#update) for the top-level `composer.json` thus triggering composer-merge-plugin to look for the sub-level configuration files and update your dependencies.
84+
This will [instruct Composer to recalculate the file hash](https://getcomposer.org/doc/03-cli.md#update) for the top-level `composer.json` thus triggering Composer Merge Plugin to look for the sub-level configuration files and update your dependencies.
7485

7586

7687
Plugin configuration
@@ -228,6 +239,6 @@ Composer Merge plugin is licensed under the MIT license. See the
228239
[PHP Code Sniffer]: http://pear.php.net/package/PHP_CodeSniffer
229240
[Latest Stable Version]: https://img.shields.io/packagist/v/wikimedia/composer-merge-plugin.svg?style=flat
230241
[License]: https://img.shields.io/packagist/l/wikimedia/composer-merge-plugin.svg?style=flat
231-
[Build Status]: https://img.shields.io/travis/wikimedia/composer-merge-plugin.svg?style=flat
242+
[Build Status]: https://img.shields.io/github/workflow/status/wikimedia/composer-merge-plugin/PHP%20Composer/master?style=flat
232243
[Code Coverage]: https://img.shields.io/scrutinizer/coverage/g/wikimedia/composer-merge-plugin/master.svg?style=flat
233244
[custom commands]: https://getcomposer.org/doc/articles/scripts.md#writing-custom-commands

composer.json

+18-11
Original file line numberDiff line numberDiff line change
@@ -12,35 +12,42 @@
1212
"minimum-stability": "dev",
1313
"prefer-stable": true,
1414
"require": {
15-
"composer-plugin-api": "^1.1",
16-
"php": ">=7.2.0"
15+
"php": ">=7.2.0",
16+
"composer-plugin-api": "^1.1||^2.0"
1717
},
1818
"require-dev": {
19-
"composer/composer": "^1.1",
20-
"php-parallel-lint/php-parallel-lint": "~1.1.0",
19+
"composer/composer": "^1.1||^2.0",
20+
"mediawiki/mediawiki-phan-config": "0.10.6",
21+
"php-parallel-lint/php-parallel-lint": "~1.2.0",
2122
"phpunit/phpunit": "^8.5||^9.0",
22-
"squizlabs/php_codesniffer": "~3.5.4"
23+
"squizlabs/php_codesniffer": "~3.5.8"
2324
},
2425
"autoload": {
2526
"psr-4": {
26-
"Wikimedia\\Composer\\": "src/"
27+
"Wikimedia\\Composer\\Merge\\V2\\": "src/"
2728
}
2829
},
2930
"extra": {
3031
"branch-alias": {
31-
"dev-master": "1.5.x-dev"
32+
"dev-master": "2.x-dev"
3233
},
33-
"class": "Wikimedia\\Composer\\MergePlugin"
34+
"class": "Wikimedia\\Composer\\Merge\\V2\\MergePlugin"
3435
},
3536
"config": {
36-
"optimize-autoloader": true
37+
"optimize-autoloader": true,
38+
"sort-packages": true
3739
},
3840
"scripts": {
41+
"coverage": [
42+
"phpunit --log-junit=reports/unitreport.xml --coverage-text --coverage-html=reports/coverage --coverage-clover=reports/coverage.xml",
43+
"phpcs --encoding=utf-8 --standard=PSR2 --report-checkstyle=reports/checkstyle-phpcs.xml --report-full --extensions=php src/* tests/phpunit/*"
44+
],
45+
"phan": "phan -d . --long-progress-bar",
3946
"test": [
4047
"composer validate --no-interaction",
4148
"parallel-lint src tests",
42-
"phpunit --log-junit=reports/unitreport.xml --coverage-text --coverage-html=reports/coverage --coverage-clover=reports/coverage.xml",
43-
"phpcs --encoding=utf-8 --standard=PSR2 --report-checkstyle=reports/checkstyle-phpcs.xml --report-full --extensions=php src/* tests/phpunit/*"
49+
"phpunit",
50+
"phpcs --encoding=utf-8 --standard=PSR2 --extensions=php src/* tests/phpunit/*"
4451
]
4552
}
4653
}

example/composer.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
{
22
"repositories": [
33
{
4-
"type": "vcs",
5-
"url": "./.."
4+
"type": "path",
5+
"url": "./..",
6+
"only": [
7+
"wikimedia/composer-merge-plugin"
8+
]
69
}
710
],
811
"require": {

0 commit comments

Comments
 (0)