diff --git a/.travis.yml b/.travis.yml index fa1f44d96..0a5446736 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,45 +2,40 @@ dist: xenial language: php -php: - - "5.6" - - "7.0" - - "7.2" - - "7.3" - -addons: - apt: - packages: - # For xmllint. - - libxml2-utils -env: - - WP_VERSION=latest WP_MULTISITE=0 - - WP_VERSION=latest WP_MULTISITE=1 - - WP_VERSION=trunk WP_MULTISITE=0 - - WP_VERSION=trunk WP_MULTISITE=1 +php: "7.4" jobs: include: - - name: Release Package - php: "7.3" - env: WP_VERSION=latest WP_MULTISITE=0 WP_RELEASE=1 + + - stage: test + name: Test with PHP 5.6 + before_script: docker-compose build --build-arg PHP_VERSION=5.6 --build-arg XDEBUG_VERSION=2.5.5 wordpress + + - name: Test with PHP 7.2 + before_script: docker-compose build --build-arg PHP_VERSION=7.2 wordpress + + - name: Default Test + before_script: docker-compose build + + - stage: deploy + name: Release Package + env: WP_RELEASE=1 services: - - mysql + - docker before_install: + - docker load -i /tmp/docker_images/images.tar || true - nvm install - nvm use install: - npm install - - export DEV_LIB_PATH="vendor/xwp/wp-dev-lib/scripts" - - export DEV_LIB_ONLY="phpunit" - - source "$DEV_LIB_PATH/travis.install.sh" script: - npm run lint - - source "$DEV_LIB_PATH/travis.script.sh" + - npm run phpunit + - npm run phpunit-multisite after_script: - test -f ./tests/reports/clover.xml && composer test-report || true @@ -48,6 +43,9 @@ after_script: before_deploy: - npm run release +before_cache: + - docker save -o /tmp/docker_images/images.tar $(docker images -a -q) + deploy: provider: releases api_key: @@ -69,3 +67,4 @@ cache: npm: true directories: - $HOME/.composer/cache + - /tmp/docker_images diff --git a/Vagrantfile b/Vagrantfile index 10f89c9eb..095ec6933 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -6,16 +6,8 @@ load File.join( Vagrant.configure(2) do |config| config.vm.hostname = "stream" - # Wait 10 seconds before the docker containers are up. - config.vm.provision "shell", - inline: "sleep 10", - run: "always" - # Setup the WP sites. config.vm.provision "shell", - path: "local/vagrant/setup-wp.sh", - run: "always", - env: { - "DOCKER_COMPOSE_FILE" => "/vagrant/docker-compose.yml" - } + inline: "docker-compose -f /vagrant/docker-compose.yml exec -T --user 1000 wordpress xwp_wait mysql:3306 -t 60 -- wp core multisite-install --url=stream.local", + run: "always" end diff --git a/composer.json b/composer.json index 4469a9971..c29a9ee14 100644 --- a/composer.json +++ b/composer.json @@ -4,34 +4,29 @@ "homepage": "https://wordpress.org/plugins/stream/", "type": "wordpress-plugin", "license": "GPL-2.0-or-later", - "repositories": [ - { - "type": "git", - "url": "https://github.com/WordPress/wordpress-develop.git" - } - ], "require": { "composer/installers": "~1.0" }, "require-dev": { + "johnpbloch/wordpress": "^5.4", "php-coveralls/php-coveralls": "^2.1", "phpunit/phpunit": "^5.7", - "wordpress/wordpress": "^5.2", "wp-cli/wp-cli-bundle": "^2.2", "wp-coding-standards/wpcs": "^2.2", - "wpsh/local": "^0.2.3", - "xwp/wp-dev-lib": "^1.5" + "wp-phpunit/wp-phpunit": "^5.4", + "wpsh/local": "^0.2.3" }, "config": { + "process-timeout": 600, "sort-packages": true, "platform": { - "php": "5.6" + "php": "5.6.20" } }, + "extra": { + "wordpress-install-dir": "local/public" + }, "scripts": { - "pre-install-cmd": [ - "Composer\\Config::disableProcessTimeout" - ], "release": [ "composer install --no-dev --prefer-dist --optimize-autoloader" ], @@ -43,7 +38,12 @@ "@lint-php" ], "test": [ - "phpunit --coverage-text" + "phpunit --coverage-text", + "php local/scripts/make-clover-relative.php ./tests/reports/clover.xml" + ], + "test-multisite": [ + "WP_MULTISITE=1 phpunit --coverage-text", + "php local/scripts/make-clover-relative.php ./tests/reports/clover.xml" ], "test-report": [ "php-coveralls --verbose" diff --git a/composer.lock b/composer.lock index dfade39ea..8b29b9d2d 100644 --- a/composer.lock +++ b/composer.lock @@ -4,32 +4,35 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "133c9fd20043e7a9e99e1ad2810780d6", + "content-hash": "bc62e37f7b1284f43f6ef6a37cefdc4e", "packages": [ { "name": "composer/installers", - "version": "v1.7.0", + "version": "v1.9.0", "source": { "type": "git", "url": "https://github.com/composer/installers.git", - "reference": "141b272484481432cda342727a427dc1e206bfa0" + "reference": "b93bcf0fa1fccb0b7d176b0967d969691cd74cca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/installers/zipball/141b272484481432cda342727a427dc1e206bfa0", - "reference": "141b272484481432cda342727a427dc1e206bfa0", + "url": "https://api.github.com/repos/composer/installers/zipball/b93bcf0fa1fccb0b7d176b0967d969691cd74cca", + "reference": "b93bcf0fa1fccb0b7d176b0967d969691cd74cca", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0" + "composer-plugin-api": "^1.0 || ^2.0" }, "replace": { "roundcube/plugin-installer": "*", "shama/baton": "*" }, "require-dev": { - "composer/composer": "1.0.*@dev", - "phpunit/phpunit": "^4.8.36" + "composer/composer": "1.6.* || 2.0.*@dev", + "composer/semver": "1.0.* || 2.0.*@dev", + "phpunit/phpunit": "^4.8.36", + "sebastian/comparator": "^1.2.4", + "symfony/process": "^2.3" }, "type": "composer-plugin", "extra": { @@ -65,6 +68,7 @@ "Kanboard", "Lan Management System", "MODX Evo", + "MantisBT", "Mautic", "Maya", "OXID", @@ -119,6 +123,7 @@ "shopware", "silverstripe", "sydes", + "sylius", "symfony", "typo3", "wordpress", @@ -126,22 +131,22 @@ "zend", "zikula" ], - "time": "2019-08-12T15:00:31+00:00" + "time": "2020-04-07T06:57:05+00:00" } ], "packages-dev": [ { "name": "composer/ca-bundle", - "version": "1.2.5", + "version": "1.2.7", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "62e8fc2dc550e5d6d8c9360c7721662670f58149" + "reference": "95c63ab2117a72f48f5a55da9740a3273d45b7fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/62e8fc2dc550e5d6d8c9360c7721662670f58149", - "reference": "62e8fc2dc550e5d6d8c9360c7721662670f58149", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/95c63ab2117a72f48f5a55da9740a3273d45b7fd", + "reference": "95c63ab2117a72f48f5a55da9740a3273d45b7fd", "shasum": "" }, "require": { @@ -184,20 +189,20 @@ "ssl", "tls" ], - "time": "2019-12-11T14:44:42+00:00" + "time": "2020-04-08T08:27:21+00:00" }, { "name": "composer/composer", - "version": "1.9.1", + "version": "1.10.8", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "bb01f2180df87ce7992b8331a68904f80439dd2f" + "reference": "56e0e094478f30935e9128552188355fa9712291" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/bb01f2180df87ce7992b8331a68904f80439dd2f", - "reference": "bb01f2180df87ce7992b8331a68904f80439dd2f", + "url": "https://api.github.com/repos/composer/composer/zipball/56e0e094478f30935e9128552188355fa9712291", + "reference": "56e0e094478f30935e9128552188355fa9712291", "shasum": "" }, "require": { @@ -205,22 +210,22 @@ "composer/semver": "^1.0", "composer/spdx-licenses": "^1.2", "composer/xdebug-handler": "^1.1", - "justinrainbow/json-schema": "^3.0 || ^4.0 || ^5.0", + "justinrainbow/json-schema": "^5.2.10", "php": "^5.3.2 || ^7.0", "psr/log": "^1.0", "seld/jsonlint": "^1.4", "seld/phar-utils": "^1.0", - "symfony/console": "^2.7 || ^3.0 || ^4.0", - "symfony/filesystem": "^2.7 || ^3.0 || ^4.0", - "symfony/finder": "^2.7 || ^3.0 || ^4.0", - "symfony/process": "^2.7 || ^3.0 || ^4.0" + "symfony/console": "^2.7 || ^3.0 || ^4.0 || ^5.0", + "symfony/filesystem": "^2.7 || ^3.0 || ^4.0 || ^5.0", + "symfony/finder": "^2.7 || ^3.0 || ^4.0 || ^5.0", + "symfony/process": "^2.7 || ^3.0 || ^4.0 || ^5.0" }, "conflict": { "symfony/console": "2.8.38" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7", - "phpunit/phpunit-mock-objects": "^2.3 || ^3.0" + "phpspec/prophecy": "^1.10", + "symfony/phpunit-bridge": "^4.2" }, "suggest": { "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", @@ -233,7 +238,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.10-dev" } }, "autoload": { @@ -264,28 +269,27 @@ "dependency", "package" ], - "time": "2019-11-01T16:20:17+00:00" + "time": "2020-06-24T19:23:30+00:00" }, { "name": "composer/semver", - "version": "1.5.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e" + "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/46d9139568ccb8d9e7cdd4539cab7347568a5e2e", - "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e", + "url": "https://api.github.com/repos/composer/semver/zipball/c6bea70230ef4dd483e6bbcab6005f682ed3a8de", + "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.5 || ^5.0.5", - "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" + "phpunit/phpunit": "^4.5 || ^5.0.5" }, "type": "library", "extra": { @@ -326,20 +330,20 @@ "validation", "versioning" ], - "time": "2019-03-19T17:25:45+00:00" + "time": "2020-01-13T12:06:48+00:00" }, { "name": "composer/spdx-licenses", - "version": "1.5.2", + "version": "1.5.3", "source": { "type": "git", "url": "https://github.com/composer/spdx-licenses.git", - "reference": "7ac1e6aec371357df067f8a688c3d6974df68fa5" + "reference": "0c3e51e1880ca149682332770e25977c70cf9dae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/7ac1e6aec371357df067f8a688c3d6974df68fa5", - "reference": "7ac1e6aec371357df067f8a688c3d6974df68fa5", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/0c3e51e1880ca149682332770e25977c70cf9dae", + "reference": "0c3e51e1880ca149682332770e25977c70cf9dae", "shasum": "" }, "require": { @@ -386,20 +390,20 @@ "spdx", "validator" ], - "time": "2019-07-29T10:31:59+00:00" + "time": "2020-02-14T07:44:31+00:00" }, { "name": "composer/xdebug-handler", - "version": "1.4.0", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "cbe23383749496fe0f373345208b79568e4bc248" + "reference": "fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/cbe23383749496fe0f373345208b79568e4bc248", - "reference": "cbe23383749496fe0f373345208b79568e4bc248", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51", + "reference": "fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51", "shasum": "" }, "require": { @@ -430,7 +434,7 @@ "Xdebug", "performance" ], - "time": "2019-11-06T16:40:04+00:00" + "time": "2020-06-04T11:16:35+00:00" }, { "name": "cweagans/composer-patches", @@ -655,23 +659,24 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.5.2", + "version": "6.5.5", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "43ece0e75098b7ecd8d13918293029e555a50f82" + "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/43ece0e75098b7ecd8d13918293029e555a50f82", - "reference": "43ece0e75098b7ecd8d13918293029e555a50f82", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", + "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", "shasum": "" }, "require": { "ext-json": "*", "guzzlehttp/promises": "^1.0", "guzzlehttp/psr7": "^1.6.1", - "php": ">=5.5" + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.17.0" }, "require-dev": { "ext-curl": "*", @@ -679,7 +684,6 @@ "psr/log": "^1.1" }, "suggest": { - "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, "type": "library", @@ -718,7 +722,7 @@ "rest", "web service" ], - "time": "2019-12-23T11:57:10+00:00" + "time": "2020-06-16T21:01:06+00:00" }, { "name": "guzzlehttp/promises", @@ -842,18 +846,148 @@ ], "time": "2019-07-01T23:21:34+00:00" }, + { + "name": "johnpbloch/wordpress", + "version": "5.4.2", + "source": { + "type": "git", + "url": "https://github.com/johnpbloch/wordpress.git", + "reference": "18c41a328193d6f7425a3cea4e01faa220e90218" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/johnpbloch/wordpress/zipball/18c41a328193d6f7425a3cea4e01faa220e90218", + "reference": "18c41a328193d6f7425a3cea4e01faa220e90218", + "shasum": "" + }, + "require": { + "johnpbloch/wordpress-core": "5.4.2", + "johnpbloch/wordpress-core-installer": "^1.0 || ^2.0", + "php": ">=5.6.20" + }, + "type": "package", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "WordPress Community", + "homepage": "http://wordpress.org/about/" + } + ], + "description": "WordPress is open source software you can use to create a beautiful website, blog, or app.", + "homepage": "http://wordpress.org/", + "keywords": [ + "blog", + "cms", + "wordpress" + ], + "time": "2020-06-10T22:05:43+00:00" + }, + { + "name": "johnpbloch/wordpress-core", + "version": "5.4.2", + "source": { + "type": "git", + "url": "https://github.com/johnpbloch/wordpress-core.git", + "reference": "3e67d8b6ee6c11e8ce404da4627117fb7fbf9266" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/johnpbloch/wordpress-core/zipball/3e67d8b6ee6c11e8ce404da4627117fb7fbf9266", + "reference": "3e67d8b6ee6c11e8ce404da4627117fb7fbf9266", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=5.6.20" + }, + "provide": { + "wordpress/core-implementation": "5.4.2" + }, + "type": "wordpress-core", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "WordPress Community", + "homepage": "https://wordpress.org/about/" + } + ], + "description": "WordPress is open source software you can use to create a beautiful website, blog, or app.", + "homepage": "https://wordpress.org/", + "keywords": [ + "blog", + "cms", + "wordpress" + ], + "time": "2020-06-10T22:05:38+00:00" + }, + { + "name": "johnpbloch/wordpress-core-installer", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/johnpbloch/wordpress-core-installer.git", + "reference": "237faae9a60a4a2e1d45dce1a5836ffa616de63e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/johnpbloch/wordpress-core-installer/zipball/237faae9a60a4a2e1d45dce1a5836ffa616de63e", + "reference": "237faae9a60a4a2e1d45dce1a5836ffa616de63e", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=5.6.0" + }, + "conflict": { + "composer/installers": "<1.0.6" + }, + "require-dev": { + "composer/composer": "^1.0 || ^2.0", + "phpunit/phpunit": ">=5.7.27" + }, + "type": "composer-plugin", + "extra": { + "class": "johnpbloch\\Composer\\WordPressCorePlugin" + }, + "autoload": { + "psr-0": { + "johnpbloch\\Composer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "John P. Bloch", + "email": "me@johnpbloch.com" + } + ], + "description": "A custom installer to handle deploying WordPress with composer", + "keywords": [ + "wordpress" + ], + "time": "2020-04-16T21:44:57+00:00" + }, { "name": "justinrainbow/json-schema", - "version": "5.2.9", + "version": "5.2.10", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "44c6787311242a979fa15c704327c20e7221a0e4" + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/44c6787311242a979fa15c704327c20e7221a0e4", - "reference": "44c6787311242a979fa15c704327c20e7221a0e4", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", "shasum": "" }, "require": { @@ -906,20 +1040,20 @@ "json", "schema" ], - "time": "2019-09-25T14:49:45+00:00" + "time": "2020-05-27T16:41:55+00:00" }, { "name": "mck89/peast", - "version": "v1.10.1", + "version": "v1.10.4", "source": { "type": "git", "url": "https://github.com/mck89/peast.git", - "reference": "461fbe96212ac1b511f527fd11b942e976429398" + "reference": "e11664ef53ba2a4ca1d16d8bc73fcc317cd65d3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mck89/peast/zipball/461fbe96212ac1b511f527fd11b942e976429398", - "reference": "461fbe96212ac1b511f527fd11b942e976429398", + "url": "https://api.github.com/repos/mck89/peast/zipball/e11664ef53ba2a4ca1d16d8bc73fcc317cd65d3d", + "reference": "e11664ef53ba2a4ca1d16d8bc73fcc317cd65d3d", "shasum": "" }, "require": { @@ -931,7 +1065,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.10.1-dev" + "dev-master": "1.10.4-dev" } }, "autoload": { @@ -951,7 +1085,7 @@ } ], "description": "Peast is PHP library that generates AST for JavaScript code", - "time": "2019-12-22T16:46:42+00:00" + "time": "2020-06-21T17:16:08+00:00" }, { "name": "mustache/mustache", @@ -1316,24 +1450,24 @@ }, { "name": "phpspec/prophecy", - "version": "1.10.1", + "version": "v1.10.3", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc" + "reference": "451c3cd1418cf640de218914901e51b064abb093" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/cbe1df668b3fe136bcc909126a0f529a78d4cbbc", - "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", + "reference": "451c3cd1418cf640de218914901e51b064abb093", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.2.3|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" }, "require-dev": { "phpspec/phpspec": "^2.5 || ^3.2", @@ -1375,7 +1509,7 @@ "spy", "stub" ], - "time": "2019-12-22T21:05:45+00:00" + "time": "2020-03-05T15:02:03+00:00" }, { "name": "phpunit/php-code-coverage", @@ -1820,16 +1954,16 @@ }, { "name": "psr/log", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", "shasum": "" }, "require": { @@ -1863,7 +1997,7 @@ "psr", "psr-3" ], - "time": "2019-11-01T11:05:21+00:00" + "time": "2020-03-23T09:12:05+00:00" }, { "name": "ralouphie/getallheaders", @@ -2469,20 +2603,20 @@ }, { "name": "seld/jsonlint", - "version": "1.7.2", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "e2e5d290e4d2a4f0eb449f510071392e00e10d19" + "reference": "ff2aa5420bfbc296cf6a0bc785fa5b35736de7c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/e2e5d290e4d2a4f0eb449f510071392e00e10d19", - "reference": "e2e5d290e4d2a4f0eb449f510071392e00e10d19", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/ff2aa5420bfbc296cf6a0bc785fa5b35736de7c1", + "reference": "ff2aa5420bfbc296cf6a0bc785fa5b35736de7c1", "shasum": "" }, "require": { - "php": "^5.3 || ^7.0" + "php": "^5.3 || ^7.0 || ^8.0" }, "require-dev": { "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" @@ -2514,20 +2648,20 @@ "parser", "validator" ], - "time": "2019-10-24T14:27:39+00:00" + "time": "2020-04-30T19:05:18+00:00" }, { "name": "seld/phar-utils", - "version": "1.0.1", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a" + "reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/7009b5139491975ef6486545a39f3e6dad5ac30a", - "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8800503d56b9867d43d9c303b9cbcc26016e82f0", + "reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0", "shasum": "" }, "require": { @@ -2556,22 +2690,22 @@ ], "description": "PHAR file format utilities, for when PHP phars you up", "keywords": [ - "phra" + "phar" ], - "time": "2015-10-13T18:44:15+00:00" + "time": "2020-02-14T15:25:33+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.5.4", + "version": "3.5.5", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "dceec07328401de6211037abbb18bda423677e26" + "reference": "73e2e7f57d958e7228fce50dc0c61f58f017f9f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dceec07328401de6211037abbb18bda423677e26", - "reference": "dceec07328401de6211037abbb18bda423677e26", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/73e2e7f57d958e7228fce50dc0c61f58f017f9f6", + "reference": "73e2e7f57d958e7228fce50dc0c61f58f017f9f6", "shasum": "" }, "require": { @@ -2609,20 +2743,20 @@ "phpcs", "standards" ], - "time": "2020-01-30T22:20:29+00:00" + "time": "2020-04-17T01:09:41+00:00" }, { "name": "symfony/config", - "version": "v3.4.36", + "version": "v3.4.42", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "a599a867d0e4a07c342b5f1e656b3915a540ddbe" + "reference": "cd61db31cbd19cbe4ba9f6968f13c9076e1372ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/a599a867d0e4a07c342b5f1e656b3915a540ddbe", - "reference": "a599a867d0e4a07c342b5f1e656b3915a540ddbe", + "url": "https://api.github.com/repos/symfony/config/zipball/cd61db31cbd19cbe4ba9f6968f13c9076e1372ab", + "reference": "cd61db31cbd19cbe4ba9f6968f13c9076e1372ab", "shasum": "" }, "require": { @@ -2673,20 +2807,20 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2019-12-01T10:45:41+00:00" + "time": "2020-05-22T10:56:48+00:00" }, { "name": "symfony/console", - "version": "v3.4.36", + "version": "v3.4.42", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "1ee23b3b659b06c622f2bd2492a229e416eb4586" + "reference": "bfe29ead7e7b1cc9ce74c6a40d06ad1f96fced13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/1ee23b3b659b06c622f2bd2492a229e416eb4586", - "reference": "1ee23b3b659b06c622f2bd2492a229e416eb4586", + "url": "https://api.github.com/repos/symfony/console/zipball/bfe29ead7e7b1cc9ce74c6a40d06ad1f96fced13", + "reference": "bfe29ead7e7b1cc9ce74c6a40d06ad1f96fced13", "shasum": "" }, "require": { @@ -2745,20 +2879,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-12-01T10:04:45+00:00" + "time": "2020-05-30T18:58:05+00:00" }, { "name": "symfony/debug", - "version": "v3.4.36", + "version": "v3.4.42", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086" + "reference": "518c6a00d0872da30bd06aee3ea59a0a5cf54d6d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/f72e33fdb1170b326e72c3157f0cd456351dd086", - "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086", + "url": "https://api.github.com/repos/symfony/debug/zipball/518c6a00d0872da30bd06aee3ea59a0a5cf54d6d", + "reference": "518c6a00d0872da30bd06aee3ea59a0a5cf54d6d", "shasum": "" }, "require": { @@ -2801,20 +2935,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2019-10-24T15:33:53+00:00" + "time": "2020-05-22T18:25:20+00:00" }, { "name": "symfony/filesystem", - "version": "v3.4.36", + "version": "v3.4.42", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "00cdad0936d06fab136944bc2342b762b1c3a4a2" + "reference": "0f625d0cb1e59c8c4ba61abb170125175218ff10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/00cdad0936d06fab136944bc2342b762b1c3a4a2", - "reference": "00cdad0936d06fab136944bc2342b762b1c3a4a2", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/0f625d0cb1e59c8c4ba61abb170125175218ff10", + "reference": "0f625d0cb1e59c8c4ba61abb170125175218ff10", "shasum": "" }, "require": { @@ -2851,20 +2985,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2019-11-25T16:36:22+00:00" + "time": "2020-05-30T17:48:24+00:00" }, { "name": "symfony/finder", - "version": "v3.4.36", + "version": "v3.4.42", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "290ae21279b37bfd287cdcce640d51204e84afdf" + "reference": "5ec813ccafa8164ef21757e8c725d3a57da59200" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/290ae21279b37bfd287cdcce640d51204e84afdf", - "reference": "290ae21279b37bfd287cdcce640d51204e84afdf", + "url": "https://api.github.com/repos/symfony/finder/zipball/5ec813ccafa8164ef21757e8c725d3a57da59200", + "reference": "5ec813ccafa8164ef21757e8c725d3a57da59200", "shasum": "" }, "require": { @@ -2900,20 +3034,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-11-17T21:55:15+00:00" + "time": "2020-02-14T07:34:21+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.13.1", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" + "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d", + "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d", "shasum": "" }, "require": { @@ -2925,7 +3059,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -2958,20 +3096,86 @@ "polyfill", "portable" ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-06-06T08:46:27+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.17.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "a57f8161502549a742a63c09f0a604997bf47027" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a57f8161502549a742a63c09f0a604997bf47027", + "reference": "a57f8161502549a742a63c09f0a604997bf47027", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "time": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.13.1", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" + "reference": "7110338d81ce1cbc3e273136e4574663627037a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7110338d81ce1cbc3e273136e4574663627037a7", + "reference": "7110338d81ce1cbc3e273136e4574663627037a7", "shasum": "" }, "require": { @@ -2983,7 +3187,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -3017,20 +3225,75 @@ "portable", "shim" ], - "time": "2019-11-27T14:18:11+00:00" + "time": "2020-06-06T08:46:27+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.17.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "f048e612a3905f34931127360bdd2def19a5e582" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582", + "reference": "f048e612a3905f34931127360bdd2def19a5e582", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2020-05-12T16:47:27+00:00" }, { "name": "symfony/process", - "version": "v3.4.36", + "version": "v3.4.42", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "9a4545c01e1e4f473492bd52b71e574dcc401ca2" + "reference": "8a895f0c92a7c4b10db95139bcff71bdf66d4d21" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/9a4545c01e1e4f473492bd52b71e574dcc401ca2", - "reference": "9a4545c01e1e4f473492bd52b71e574dcc401ca2", + "url": "https://api.github.com/repos/symfony/process/zipball/8a895f0c92a7c4b10db95139bcff71bdf66d4d21", + "reference": "8a895f0c92a7c4b10db95139bcff71bdf66d4d21", "shasum": "" }, "require": { @@ -3066,20 +3329,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-11-28T10:05:51+00:00" + "time": "2020-05-23T17:05:51+00:00" }, { "name": "symfony/stopwatch", - "version": "v3.4.36", + "version": "v3.4.42", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "efe0af281ad336bc3b10375c88b117499f1d8494" + "reference": "a7a98f40dcc382a332c3729a6d04b298ffbb8f1f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/efe0af281ad336bc3b10375c88b117499f1d8494", - "reference": "efe0af281ad336bc3b10375c88b117499f1d8494", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/a7a98f40dcc382a332c3729a6d04b298ffbb8f1f", + "reference": "a7a98f40dcc382a332c3729a6d04b298ffbb8f1f", "shasum": "" }, "require": { @@ -3115,20 +3378,20 @@ ], "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", - "time": "2019-11-03T17:17:59+00:00" + "time": "2020-03-15T09:38:08+00:00" }, { "name": "symfony/yaml", - "version": "v3.4.36", + "version": "v3.4.42", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "dab657db15207879217fc81df4f875947bf68804" + "reference": "7233ac2bfdde24d672f5305f2b3f6b5d741ef8eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/dab657db15207879217fc81df4f875947bf68804", - "reference": "dab657db15207879217fc81df4f875947bf68804", + "url": "https://api.github.com/repos/symfony/yaml/zipball/7233ac2bfdde24d672f5305f2b3f6b5d741ef8eb", + "reference": "7233ac2bfdde24d672f5305f2b3f6b5d741ef8eb", "shasum": "" }, "require": { @@ -3174,20 +3437,20 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2019-10-24T15:33:53+00:00" + "time": "2020-05-11T07:51:54+00:00" }, { "name": "webmozart/assert", - "version": "1.6.0", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "573381c0a64f155a0d9a23f4b0c797194805b925" + "reference": "9dc4f203e36f2b486149058bade43c851dd97451" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/573381c0a64f155a0d9a23f4b0c797194805b925", - "reference": "573381c0a64f155a0d9a23f4b0c797194805b925", + "url": "https://api.github.com/repos/webmozart/assert/zipball/9dc4f203e36f2b486149058bade43c851dd97451", + "reference": "9dc4f203e36f2b486149058bade43c851dd97451", "shasum": "" }, "require": { @@ -3195,7 +3458,8 @@ "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "vimeo/psalm": "<3.6.0" + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<3.9.1" }, "require-dev": { "phpunit/phpunit": "^4.8.36 || ^7.5.13" @@ -3222,54 +3486,7 @@ "check", "validate" ], - "time": "2019-11-24T13:36:37+00:00" - }, - { - "name": "wordpress/wordpress", - "version": "5.3.2", - "source": { - "type": "git", - "url": "https://github.com/WordPress/wordpress-develop.git", - "reference": "74214d276c14b63dc868227c7cf96a0c1c0f7e7e" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "~0.5.0", - "phpcompatibility/phpcompatibility-wp": "^2.1.0", - "wp-coding-standards/wpcs": "~2.1.0" - }, - "type": "library", - "scripts": { - "compat": [ - "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs --standard=phpcompat.xml.dist --report=summary,source" - ], - "format": [ - "@php ./vendor/squizlabs/php_codesniffer/bin/phpcbf --report=summary,source" - ], - "lint": [ - "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs --report=summary,source" - ], - "lint:errors": [ - "@lint -n" - ] - }, - "license": [ - "GPL-2.0-or-later" - ], - "description": "WordPress is open source software you can use to create a beautiful website, blog, or app.", - "homepage": "https://wordpress.org", - "keywords": [ - "blog", - "cms", - "wordpress", - "wp" - ], - "support": { - "issues": "https://core.trac.wordpress.org/" - }, - "time": "2019-12-18T22:15:35+00:00" + "time": "2020-06-16T10:16:42+00:00" }, { "name": "wp-cli/cache-command", @@ -3533,16 +3750,16 @@ }, { "name": "wp-cli/cron-command", - "version": "v2.0.3", + "version": "v2.0.4", "source": { "type": "git", "url": "https://github.com/wp-cli/cron-command.git", - "reference": "b6d0c8ff69cc56d5316a35a7a2fcc314c4069585" + "reference": "184ce82dfd6e7284a73f039ae39cf51a5f73174e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/cron-command/zipball/b6d0c8ff69cc56d5316a35a7a2fcc314c4069585", - "reference": "b6d0c8ff69cc56d5316a35a7a2fcc314c4069585", + "url": "https://api.github.com/repos/wp-cli/cron-command/zipball/184ce82dfd6e7284a73f039ae39cf51a5f73174e", + "reference": "184ce82dfd6e7284a73f039ae39cf51a5f73174e", "shasum": "" }, "require": { @@ -3567,7 +3784,8 @@ "cron event run", "cron event schedule", "cron schedule", - "cron schedule list" + "cron schedule list", + "cron event unschedule" ] }, "autoload": { @@ -3591,20 +3809,20 @@ ], "description": "Tests, runs, and deletes WP-Cron events; manages WP-Cron schedules.", "homepage": "https://github.com/wp-cli/cron-command", - "time": "2019-04-24T07:31:46+00:00" + "time": "2019-12-17T17:53:36+00:00" }, { "name": "wp-cli/db-command", - "version": "v2.0.5", + "version": "v2.0.6", "source": { "type": "git", "url": "https://github.com/wp-cli/db-command.git", - "reference": "119cf31491577d0a79ad42021dfeb8ac1138342b" + "reference": "8e3cd46987241ed97ddb7f682b3505dff8d6dce4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/db-command/zipball/119cf31491577d0a79ad42021dfeb8ac1138342b", - "reference": "119cf31491577d0a79ad42021dfeb8ac1138342b", + "url": "https://api.github.com/repos/wp-cli/db-command/zipball/8e3cd46987241ed97ddb7f682b3505dff8d6dce4", + "reference": "8e3cd46987241ed97ddb7f682b3505dff8d6dce4", "shasum": "" }, "require": { @@ -3661,7 +3879,7 @@ ], "description": "Performs basic database operations using credentials stored in wp-config.php.", "homepage": "https://github.com/wp-cli/db-command", - "time": "2019-11-12T05:05:58+00:00" + "time": "2020-01-28T16:39:32+00:00" }, { "name": "wp-cli/embed-command", @@ -3934,16 +4152,16 @@ }, { "name": "wp-cli/eval-command", - "version": "v2.0.5", + "version": "v2.0.6", "source": { "type": "git", "url": "https://github.com/wp-cli/eval-command.git", - "reference": "945aaebc761a694cf302985088ef6b19a4567643" + "reference": "d379732f9899387a6a631ccea5116b3da6f16300" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/eval-command/zipball/945aaebc761a694cf302985088ef6b19a4567643", - "reference": "945aaebc761a694cf302985088ef6b19a4567643", + "url": "https://api.github.com/repos/wp-cli/eval-command/zipball/d379732f9899387a6a631ccea5116b3da6f16300", + "reference": "d379732f9899387a6a631ccea5116b3da6f16300", "shasum": "" }, "require": { @@ -3984,7 +4202,7 @@ ], "description": "Executes arbitrary PHP code or files.", "homepage": "https://github.com/wp-cli/eval-command", - "time": "2019-11-12T01:36:20+00:00" + "time": "2020-02-06T11:24:47+00:00" }, { "name": "wp-cli/export-command", @@ -4046,16 +4264,16 @@ }, { "name": "wp-cli/extension-command", - "version": "v2.0.7", + "version": "v2.0.9", "source": { "type": "git", "url": "https://github.com/wp-cli/extension-command.git", - "reference": "e397cf208c0df679656a87041bf34129e7e3d922" + "reference": "b6b042fbeb7b3765e28b92e2971739af3d4ee888" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/extension-command/zipball/e397cf208c0df679656a87041bf34129e7e3d922", - "reference": "e397cf208c0df679656a87041bf34129e7e3d922", + "url": "https://api.github.com/repos/wp-cli/extension-command/zipball/b6b042fbeb7b3765e28b92e2971739af3d4ee888", + "reference": "b6b042fbeb7b3765e28b92e2971739af3d4ee888", "shasum": "" }, "require": { @@ -4125,24 +4343,29 @@ "name": "Daniel Bachhuber", "email": "daniel@runcommand.io", "homepage": "https://runcommand.io" + }, + { + "name": "Alain Schlesser", + "email": "alain.schlesser@gmail.com", + "homepage": "https://www.alainschlesser.com" } ], "description": "Manages plugins and themes, including installs, activations, and updates.", "homepage": "https://github.com/wp-cli/extension-command", - "time": "2019-11-08T20:23:53+00:00" + "time": "2020-04-13T14:55:45+00:00" }, { "name": "wp-cli/i18n-command", - "version": "v2.2.1", + "version": "v2.2.3", "source": { "type": "git", "url": "https://github.com/wp-cli/i18n-command.git", - "reference": "6a0582103ecf4a28b3086eac55a9fe590bd3dc96" + "reference": "7a5d483d872dfec1b89d88d348666ecd59454d52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/i18n-command/zipball/6a0582103ecf4a28b3086eac55a9fe590bd3dc96", - "reference": "6a0582103ecf4a28b3086eac55a9fe590bd3dc96", + "url": "https://api.github.com/repos/wp-cli/i18n-command/zipball/7a5d483d872dfec1b89d88d348666ecd59454d52", + "reference": "7a5d483d872dfec1b89d88d348666ecd59454d52", "shasum": "" }, "require": { @@ -4186,7 +4409,7 @@ ], "description": "Provides internationalization tools for WordPress projects.", "homepage": "https://github.com/wp-cli/i18n-command", - "time": "2019-11-12T06:57:35+00:00" + "time": "2020-06-04T07:07:10+00:00" }, { "name": "wp-cli/import-command", @@ -4378,16 +4601,16 @@ }, { "name": "wp-cli/media-command", - "version": "v2.0.7", + "version": "v2.0.8", "source": { "type": "git", "url": "https://github.com/wp-cli/media-command.git", - "reference": "0b7fbee4c4aa9335b83fd5c65183808949ba1c8e" + "reference": "5181e5cee2f6cb43cfee6cacf3b08e8fb166b2b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/media-command/zipball/0b7fbee4c4aa9335b83fd5c65183808949ba1c8e", - "reference": "0b7fbee4c4aa9335b83fd5c65183808949ba1c8e", + "url": "https://api.github.com/repos/wp-cli/media-command/zipball/5181e5cee2f6cb43cfee6cacf3b08e8fb166b2b5", + "reference": "5181e5cee2f6cb43cfee6cacf3b08e8fb166b2b5", "shasum": "" }, "require": { @@ -4432,7 +4655,7 @@ ], "description": "Imports files as attachments, regenerates thumbnails, or lists registered image sizes.", "homepage": "https://github.com/wp-cli/media-command", - "time": "2019-11-12T11:32:15+00:00" + "time": "2020-05-13T16:21:49+00:00" }, { "name": "wp-cli/mustangostang-spyc", @@ -4484,16 +4707,16 @@ }, { "name": "wp-cli/package-command", - "version": "v2.0.5", + "version": "v2.0.6", "source": { "type": "git", "url": "https://github.com/wp-cli/package-command.git", - "reference": "52fea16f3cec0577b9c417a19ebc0f328c38d853" + "reference": "92a0d7f2f4b54ad2aeff2292baaa96ba8f93f37a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/package-command/zipball/52fea16f3cec0577b9c417a19ebc0f328c38d853", - "reference": "52fea16f3cec0577b9c417a19ebc0f328c38d853", + "url": "https://api.github.com/repos/wp-cli/package-command/zipball/92a0d7f2f4b54ad2aeff2292baaa96ba8f93f37a", + "reference": "92a0d7f2f4b54ad2aeff2292baaa96ba8f93f37a", "shasum": "" }, "require": { @@ -4541,7 +4764,7 @@ ], "description": "Lists, installs, and removes WP-CLI packages.", "homepage": "https://github.com/wp-cli/package-command", - "time": "2019-04-24T09:34:35+00:00" + "time": "2020-01-28T12:55:09+00:00" }, { "name": "wp-cli/php-cli-tools", @@ -4714,16 +4937,16 @@ }, { "name": "wp-cli/scaffold-command", - "version": "v2.0.7", + "version": "v2.0.8", "source": { "type": "git", "url": "https://github.com/wp-cli/scaffold-command.git", - "reference": "fe73e6f71c2a03908bb5ceac17a0e408544a868a" + "reference": "4814acbdf3d7af499530cc1ae1e82f3ed9f12674" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/scaffold-command/zipball/fe73e6f71c2a03908bb5ceac17a0e408544a868a", - "reference": "fe73e6f71c2a03908bb5ceac17a0e408544a868a", + "url": "https://api.github.com/repos/wp-cli/scaffold-command/zipball/4814acbdf3d7af499530cc1ae1e82f3ed9f12674", + "reference": "4814acbdf3d7af499530cc1ae1e82f3ed9f12674", "shasum": "" }, "require": { @@ -4773,20 +4996,20 @@ ], "description": "Generates code for post types, taxonomies, blocks, plugins, child themes, etc.", "homepage": "https://github.com/wp-cli/scaffold-command", - "time": "2019-11-12T11:32:15+00:00" + "time": "2019-11-25T13:26:31+00:00" }, { "name": "wp-cli/search-replace-command", - "version": "v2.0.5", + "version": "v2.0.6", "source": { "type": "git", "url": "https://github.com/wp-cli/search-replace-command.git", - "reference": "d53ae0715d3701ef22826d5c7b46973a1b24e472" + "reference": "f446ca1f90144b496dbacb373868118ba40df028" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/search-replace-command/zipball/d53ae0715d3701ef22826d5c7b46973a1b24e472", - "reference": "d53ae0715d3701ef22826d5c7b46973a1b24e472", + "url": "https://api.github.com/repos/wp-cli/search-replace-command/zipball/f446ca1f90144b496dbacb373868118ba40df028", + "reference": "f446ca1f90144b496dbacb373868118ba40df028", "shasum": "" }, "require": { @@ -4829,7 +5052,7 @@ ], "description": "Searches/replaces strings in the database.", "homepage": "https://github.com/wp-cli/search-replace-command", - "time": "2019-11-12T01:29:55+00:00" + "time": "2019-12-13T09:13:20+00:00" }, { "name": "wp-cli/server-command", @@ -4997,20 +5220,20 @@ }, { "name": "wp-cli/widget-command", - "version": "v2.0.2", + "version": "v2.1.0", "source": { "type": "git", "url": "https://github.com/wp-cli/widget-command.git", - "reference": "58a1b2d2221cee852eb8a589535aaadb1217bb74" + "reference": "ddbc2c3e9966fae8de05a3200b04e0faf42fe06f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/widget-command/zipball/58a1b2d2221cee852eb8a589535aaadb1217bb74", - "reference": "58a1b2d2221cee852eb8a589535aaadb1217bb74", + "url": "https://api.github.com/repos/wp-cli/widget-command/zipball/ddbc2c3e9966fae8de05a3200b04e0faf42fe06f", + "reference": "ddbc2c3e9966fae8de05a3200b04e0faf42fe06f", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2" + "wp-cli/wp-cli": "^2.4" }, "require-dev": { "wp-cli/extension-command": "^1.2 || ^2", @@ -5056,26 +5279,25 @@ ], "description": "Adds, moves, and removes widgets; lists sidebars.", "homepage": "https://github.com/wp-cli/widget-command", - "time": "2019-04-25T00:25:21+00:00" + "time": "2020-01-18T02:17:30+00:00" }, { "name": "wp-cli/wp-cli", - "version": "v2.4.0", + "version": "v2.4.1", "source": { "type": "git", "url": "https://github.com/wp-cli/wp-cli.git", - "reference": "74c949c74708e3a88ad0add70f3236c8675dfd85" + "reference": "ceb18598e79befa9b2a37a51efbb34910628988b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/74c949c74708e3a88ad0add70f3236c8675dfd85", - "reference": "74c949c74708e3a88ad0add70f3236c8675dfd85", + "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/ceb18598e79befa9b2a37a51efbb34910628988b", + "reference": "ceb18598e79befa9b2a37a51efbb34910628988b", "shasum": "" }, "require": { - "cweagans/composer-patches": "^1.6", "ext-curl": "*", - "mustache/mustache": "~2.4", + "mustache/mustache": "~2.13", "php": "^5.4 || ^7.0", "rmccue/requests": "~1.6", "symfony/finder": ">2.7", @@ -5102,11 +5324,6 @@ "extra": { "branch-alias": { "dev-master": "2.4.x-dev" - }, - "patches": { - "mustache/mustache": { - "Avoid notices on PHP 7.4+": "https://patch-diff.githubusercontent.com/raw/bobthecow/mustache.php/pull/349.patch" - } } }, "autoload": { @@ -5124,7 +5341,7 @@ "cli", "wordpress" ], - "time": "2019-11-12T15:26:05+00:00" + "time": "2020-02-18T08:15:37+00:00" }, { "name": "wp-cli/wp-cli-bundle", @@ -5239,16 +5456,16 @@ }, { "name": "wp-coding-standards/wpcs", - "version": "2.2.1", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", - "reference": "b5a453203114cc2284b1a614c4953456fbe4f546" + "reference": "7da1894633f168fe244afc6de00d141f27517b62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/b5a453203114cc2284b1a614c4953456fbe4f546", - "reference": "b5a453203114cc2284b1a614c4953456fbe4f546", + "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/7da1894633f168fe244afc6de00d141f27517b62", + "reference": "7da1894633f168fe244afc6de00d141f27517b62", "shasum": "" }, "require": { @@ -5258,6 +5475,7 @@ "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || ^0.6", "phpcompatibility/php-compatibility": "^9.0", + "phpcsstandards/phpcsdevtools": "^1.0", "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, "suggest": { @@ -5280,42 +5498,63 @@ "standards", "wordpress" ], - "time": "2020-02-04T02:52:06+00:00" + "time": "2020-05-13T23:57:56+00:00" }, { - "name": "wpsh/local", - "version": "0.2.3", + "name": "wp-phpunit/wp-phpunit", + "version": "5.4.2", "source": { "type": "git", - "url": "https://github.com/wpsh/wpsh-local.git", - "reference": "17338432ed06386273a1ee4db8c8467aa8feab17" + "url": "https://github.com/wp-phpunit/wp-phpunit.git", + "reference": "15925e03c8594c08cf2822e24e511af8dc6f779e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wpsh/wpsh-local/zipball/17338432ed06386273a1ee4db8c8467aa8feab17", - "reference": "17338432ed06386273a1ee4db8c8467aa8feab17", + "url": "https://api.github.com/repos/wp-phpunit/wp-phpunit/zipball/15925e03c8594c08cf2822e24e511af8dc6f779e", + "reference": "15925e03c8594c08cf2822e24e511af8dc6f779e", "shasum": "" }, "type": "library", + "autoload": { + "files": [ + "__loaded.php" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "GPL-2.0-or-later" ], - "description": "A Docker Compose development environment for any project.", - "time": "2019-06-12T10:54:32+00:00" + "authors": [ + { + "name": "Evan Mattson", + "email": "me@aaemnnost.tv" + }, + { + "name": "WordPress Community", + "homepage": "https://wordpress.org/about/" + } + ], + "description": "WordPress core PHPUnit library", + "homepage": "https://github.com/wp-phpunit", + "keywords": [ + "phpunit", + "test", + "wordpress" + ], + "time": "2020-04-01T14:35:27+00:00" }, { - "name": "xwp/wp-dev-lib", - "version": "1.5.0", + "name": "wpsh/local", + "version": "0.2.3", "source": { "type": "git", - "url": "https://github.com/xwp/wp-dev-lib.git", - "reference": "3e3ced3fdc5c47bbb59cde2f693ce115f2865f82" + "url": "https://github.com/wpsh/wpsh-local.git", + "reference": "17338432ed06386273a1ee4db8c8467aa8feab17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/xwp/wp-dev-lib/zipball/3e3ced3fdc5c47bbb59cde2f693ce115f2865f82", - "reference": "3e3ced3fdc5c47bbb59cde2f693ce115f2865f82", + "url": "https://api.github.com/repos/wpsh/wpsh-local/zipball/17338432ed06386273a1ee4db8c8467aa8feab17", + "reference": "17338432ed06386273a1ee4db8c8467aa8feab17", "shasum": "" }, "type": "library", @@ -5323,24 +5562,8 @@ "license": [ "MIT" ], - "authors": [ - { - "name": "Weston Ruter", - "email": "weston@xwp.co", - "homepage": "https://weston.ruter.net" - }, - { - "name": "XWP", - "email": "engage@xwp.co", - "homepage": "https://xwp.co" - } - ], - "description": "Common code used during development of WordPress plugins and themes", - "homepage": "https://github.com/xwp/wp-dev-lib", - "keywords": [ - "wordpress" - ], - "time": "2020-02-10T09:35:25+00:00" + "description": "A Docker Compose development environment for any project.", + "time": "2019-06-12T10:54:32+00:00" } ], "aliases": [], @@ -5351,7 +5574,7 @@ "platform": [], "platform-dev": [], "platform-overrides": { - "php": "5.6" + "php": "5.6.20" }, "plugin-api-version": "1.1.0" } diff --git a/docker-compose.yml b/docker-compose.yml index 9f257e36d..bca5bae47 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,19 +23,18 @@ services: - "443:443" - "9000:9000" # Xdebug volumes: - - ./local/public:/var/www/html # Use host-mount to ensure correct permissions for all. - - .:/var/www/html/wp-content/plugins/stream-src - - ./build:/var/www/html/wp-content/plugins/stream - - ./vendor/wordpress/wordpress/tests/phpunit:/var/www/html/tests/wordpress-phpunit - - ./local/config/wp-tests-config.php:/var/www/html/tests/wordpress-phpunit/wp-tests-config.php - - ./local/docker/wordpress/php.ini:/usr/local/etc/php/php.ini + - .:/var/www/html/wp-content/plugins/stream-src # Working directory. + - ./build:/var/www/html/wp-content/plugins/stream # Built version for testing. + - ./local/public:/var/www/html # WP core files. + - ./local/config/wp-cli.yml:/var/www/html/wp-cli.yml + - ./local/config/wp-config.php:/var/www/html/wp-config.php + - ./local/config/wp-tests-config.php:/var/www/html/wp-tests-config.php restart: always environment: + COMPOSER_HOME: /tmp/.composer APACHE_RUN_USER: "#1000" # Ensure Apache can write to the filesystem. - WP_TESTS_DIR: /var/www/html/tests/wordpress-phpunit - WORDPRESS_DEBUG: 1 - WORDPRESS_DB_USER: wordpress - WORDPRESS_DB_PASSWORD: password + WP_TESTS_DIR: /var/www/html/wp-content/plugins/stream-src/vendor/wp-phpunit/wp-phpunit + WP_PHPUNIT__TESTS_CONFIG: /var/www/html/wp-tests-config.php db_phpunit: image: mysql:5.7 diff --git a/local/config/wp-cli.yml b/local/config/wp-cli.yml new file mode 100644 index 000000000..9ed37d2ed --- /dev/null +++ b/local/config/wp-cli.yml @@ -0,0 +1,10 @@ +url: stream.local + +# Define the default multisite install config. +core multisite-install: + title: Stream Development + admin_user: admin + admin_password: password + admin_email: admin@example.com + skip-config: + subdomains: diff --git a/local/config/wp-config.php b/local/config/wp-config.php new file mode 100644 index 000000000..f94bb8325 --- /dev/null +++ b/local/config/wp-config.php @@ -0,0 +1,30 @@ +&2; fi } + +usage() +{ + cat << USAGE >&2 +Usage: + $WAITFORIT_cmdname host:port [-s] [-t timeout] [-- command args] + -h HOST | --host=HOST Host or IP under test + -p PORT | --port=PORT TCP port under test + Alternatively, you specify the host and port as host:port + -s | --strict Only execute subcommand if the test succeeds + -q | --quiet Don't output any status messages + -t TIMEOUT | --timeout=TIMEOUT + Timeout in seconds, zero for no timeout + -- COMMAND ARGS Execute command with args after the test finishes +USAGE + exit 1 +} + +wait_for() +{ + if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then + echoerr "$WAITFORIT_cmdname: waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT" + else + echoerr "$WAITFORIT_cmdname: waiting for $WAITFORIT_HOST:$WAITFORIT_PORT without a timeout" + fi + WAITFORIT_start_ts=$(date +%s) + while : + do + if [[ $WAITFORIT_ISBUSY -eq 1 ]]; then + nc -z $WAITFORIT_HOST $WAITFORIT_PORT + WAITFORIT_result=$? + else + (echo > /dev/tcp/$WAITFORIT_HOST/$WAITFORIT_PORT) >/dev/null 2>&1 + WAITFORIT_result=$? + fi + if [[ $WAITFORIT_result -eq 0 ]]; then + WAITFORIT_end_ts=$(date +%s) + echoerr "$WAITFORIT_cmdname: $WAITFORIT_HOST:$WAITFORIT_PORT is available after $((WAITFORIT_end_ts - WAITFORIT_start_ts)) seconds" + break + fi + sleep 1 + done + return $WAITFORIT_result +} + +wait_for_wrapper() +{ + # In order to support SIGINT during timeout: http://unix.stackexchange.com/a/57692 + if [[ $WAITFORIT_QUIET -eq 1 ]]; then + timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --quiet --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT & + else + timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT & + fi + WAITFORIT_PID=$! + trap "kill -INT -$WAITFORIT_PID" INT + wait $WAITFORIT_PID + WAITFORIT_RESULT=$? + if [[ $WAITFORIT_RESULT -ne 0 ]]; then + echoerr "$WAITFORIT_cmdname: timeout occurred after waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT" + fi + return $WAITFORIT_RESULT +} + +# process arguments +while [[ $# -gt 0 ]] +do + case "$1" in + *:* ) + WAITFORIT_hostport=(${1//:/ }) + WAITFORIT_HOST=${WAITFORIT_hostport[0]} + WAITFORIT_PORT=${WAITFORIT_hostport[1]} + shift 1 + ;; + --child) + WAITFORIT_CHILD=1 + shift 1 + ;; + -q | --quiet) + WAITFORIT_QUIET=1 + shift 1 + ;; + -s | --strict) + WAITFORIT_STRICT=1 + shift 1 + ;; + -h) + WAITFORIT_HOST="$2" + if [[ $WAITFORIT_HOST == "" ]]; then break; fi + shift 2 + ;; + --host=*) + WAITFORIT_HOST="${1#*=}" + shift 1 + ;; + -p) + WAITFORIT_PORT="$2" + if [[ $WAITFORIT_PORT == "" ]]; then break; fi + shift 2 + ;; + --port=*) + WAITFORIT_PORT="${1#*=}" + shift 1 + ;; + -t) + WAITFORIT_TIMEOUT="$2" + if [[ $WAITFORIT_TIMEOUT == "" ]]; then break; fi + shift 2 + ;; + --timeout=*) + WAITFORIT_TIMEOUT="${1#*=}" + shift 1 + ;; + --) + shift + WAITFORIT_CLI=("$@") + break + ;; + --help) + usage + ;; + *) + echoerr "Unknown argument: $1" + usage + ;; + esac +done + +if [[ "$WAITFORIT_HOST" == "" || "$WAITFORIT_PORT" == "" ]]; then + echoerr "Error: you need to provide a host and port to test." + usage +fi + +WAITFORIT_TIMEOUT=${WAITFORIT_TIMEOUT:-15} +WAITFORIT_STRICT=${WAITFORIT_STRICT:-0} +WAITFORIT_CHILD=${WAITFORIT_CHILD:-0} +WAITFORIT_QUIET=${WAITFORIT_QUIET:-0} + +# Check to see if timeout is from busybox? +WAITFORIT_TIMEOUT_PATH=$(type -p timeout) +WAITFORIT_TIMEOUT_PATH=$(realpath $WAITFORIT_TIMEOUT_PATH 2>/dev/null || readlink -f $WAITFORIT_TIMEOUT_PATH) + +WAITFORIT_BUSYTIMEFLAG="" +if [[ $WAITFORIT_TIMEOUT_PATH =~ "busybox" ]]; then + WAITFORIT_ISBUSY=1 + # Check if busybox timeout uses -t flag + # (recent Alpine versions don't support -t anymore) + if timeout &>/dev/stdout | grep -q -e '-t '; then + WAITFORIT_BUSYTIMEFLAG="-t" + fi +else + WAITFORIT_ISBUSY=0 +fi + +if [[ $WAITFORIT_CHILD -gt 0 ]]; then + wait_for + WAITFORIT_RESULT=$? + exit $WAITFORIT_RESULT +else + if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then + wait_for_wrapper + WAITFORIT_RESULT=$? + else + wait_for + WAITFORIT_RESULT=$? + fi +fi + +if [[ $WAITFORIT_CLI != "" ]]; then + if [[ $WAITFORIT_RESULT -ne 0 && $WAITFORIT_STRICT -eq 1 ]]; then + echoerr "$WAITFORIT_cmdname: strict mode, refusing to execute subprocess" + exit $WAITFORIT_RESULT + fi + exec "${WAITFORIT_CLI[@]}" +else + exit $WAITFORIT_RESULT +fi diff --git a/local/scripts/make-clover-relative.php b/local/scripts/make-clover-relative.php new file mode 100644 index 000000000..bf5a514e2 --- /dev/null +++ b/local/scripts/make-clover-relative.php @@ -0,0 +1,15 @@ +