From c24f5e50c7c637115b82bfec5a55da6ee8735e8e Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 3 Jun 2020 16:19:36 +0200 Subject: update to 2.0.0-alpha1 switch to Symfony 4 switch to phpunit7 raise dependency on composer/semver 3 add dependency on react/promise 2.7 --- composer-autoload.php | 24 --------- composer-bootstrap.php | 3 -- composer-rpm.patch | 38 +++++++------- composer.json | 35 +++++++------ composer.spec | 134 +++++++++++++++++++++++++++++++++---------------- 5 files changed, 130 insertions(+), 104 deletions(-) delete mode 100644 composer-autoload.php delete mode 100644 composer-bootstrap.php diff --git a/composer-autoload.php b/composer-autoload.php deleted file mode 100644 index 15e9c21..0000000 --- a/composer-autoload.php +++ /dev/null @@ -1,24 +0,0 @@ -filePutContentsIfModified($targetDir.'/autoload_real.php', $this->getAutoloadRealFile(true, (bool) $includePathFileContents, $targetDirLoader, (bool) $includeFilesFileContents, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader, $staticPhpVersion)); +--- ./src/Composer/Autoload/AutoloadGenerator.php.rpm 2020-06-03 15:13:38.063176316 +0200 ++++ ./src/Composer/Autoload/AutoloadGenerator.php 2020-06-03 15:14:54.793961118 +0200 +@@ -357,7 +357,7 @@ EOF; + $filesystem->filePutContentsIfModified($targetDir.'/autoload_real.php', $this->getAutoloadRealFile(true, (bool) $includePathFileContents, $targetDirLoader, (bool) $includeFilesFileContents, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader, $staticPhpVersion, $checkPlatform)); - $this->safeCopy(__DIR__.'/ClassLoader.php', $targetDir.'/ClassLoader.php'); -- $this->safeCopy(__DIR__.'/../../../LICENSE', $targetDir.'/LICENSE'); -+ $this->safeCopy((getenv('BUILDROOT')?:'') . '/usr/share/composer/LICENSE', $targetDir.'/LICENSE'); + $filesystem->safeCopy(__DIR__.'/ClassLoader.php', $targetDir.'/ClassLoader.php'); +- $filesystem->safeCopy(__DIR__.'/../../../LICENSE', $targetDir.'/LICENSE'); ++ $filesystem->safeCopy((getenv('BUILDROOT')?:'') . '/usr/share/composer/LICENSE', $targetDir.'/LICENSE'); if ($this->runScripts) { $this->eventDispatcher->dispatchScript(ScriptEvents::POST_AUTOLOAD_DUMP, $this->devMode, array(), array( diff -up ./src/Composer/Compiler.php.rpm ./src/Composer/Compiler.php ---- ./src/Composer/Compiler.php.rpm 2020-02-14 15:37:41.000000000 +0100 -+++ ./src/Composer/Compiler.php 2020-02-14 15:37:43.336528140 +0100 -@@ -97,7 +97,7 @@ class Compiler +--- ./src/Composer/Compiler.php.rpm 2020-06-03 15:05:42.000000000 +0200 ++++ ./src/Composer/Compiler.php 2020-06-03 15:13:38.063176316 +0200 +@@ -98,7 +98,7 @@ class Compiler $finder = new Finder(); $finder->files() ->name('*.json') @@ -35,8 +35,8 @@ diff -up ./src/Composer/Compiler.php.rpm ./src/Composer/Compiler.php ->sort($finderSort) ; diff -up ./src/Composer/Json/JsonFile.php.rpm ./src/Composer/Json/JsonFile.php ---- ./src/Composer/Json/JsonFile.php.rpm 2020-02-14 15:37:41.000000000 +0100 -+++ ./src/Composer/Json/JsonFile.php 2020-02-14 15:37:43.336528140 +0100 +--- ./src/Composer/Json/JsonFile.php.rpm 2020-06-03 15:05:42.000000000 +0200 ++++ ./src/Composer/Json/JsonFile.php 2020-06-03 15:15:27.901868264 +0200 @@ -34,7 +34,7 @@ class JsonFile const JSON_PRETTY_PRINT = 128; const JSON_UNESCAPED_UNICODE = 256; @@ -45,8 +45,8 @@ diff -up ./src/Composer/Json/JsonFile.php.rpm ./src/Composer/Json/JsonFile.php + const COMPOSER_SCHEMA_PATH = '/usr/share/composer/res/composer-schema.json'; private $path; - private $rfs; -@@ -173,7 +173,7 @@ class JsonFile + private $httpDownloader; +@@ -179,7 +179,7 @@ class JsonFile } if (null === $schemaFile) { @@ -56,9 +56,9 @@ diff -up ./src/Composer/Json/JsonFile.php.rpm ./src/Composer/Json/JsonFile.php // Prepend with file:// only when not using a special schema already (e.g. in the phar) diff -up ./tests/Composer/Test/Json/ComposerSchemaTest.php.rpm ./tests/Composer/Test/Json/ComposerSchemaTest.php ---- ./tests/Composer/Test/Json/ComposerSchemaTest.php.rpm 2020-02-14 15:37:41.000000000 +0100 -+++ ./tests/Composer/Test/Json/ComposerSchemaTest.php 2020-02-14 15:37:43.336528140 +0100 -@@ -97,7 +97,8 @@ class ComposerSchemaTest extends TestCas +--- ./tests/Composer/Test/Json/ComposerSchemaTest.php.rpm 2020-06-03 15:05:42.000000000 +0200 ++++ ./tests/Composer/Test/Json/ComposerSchemaTest.php 2020-06-03 15:13:38.063176316 +0200 +@@ -114,7 +114,8 @@ class ComposerSchemaTest extends TestCas private function check($json) { $validator = new Validator(); diff --git a/composer.json b/composer.json index 4fdbcb7..024dc45 100644 --- a/composer.json +++ b/composer.json @@ -13,35 +13,32 @@ { "name": "Nils Adermann", "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" + "homepage": "https://www.naderman.de" }, { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "homepage": "https://seld.be" } ], "require": { "php": "^5.3.2 || ^7.0", "composer/ca-bundle": "^1.0", - "composer/semver": "^1.0", + "composer/semver": "^3.0", "composer/spdx-licenses": "^1.2", "composer/xdebug-handler": "^1.1", "justinrainbow/json-schema": "^5.2.10", "psr/log": "^1.0", "seld/jsonlint": "^1.4", "seld/phar-utils": "^1.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", - "symfony/phpunit-bridge": "3.4.40" + "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", + "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", + "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", + "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", + "react/promise": "^1.2 || ^2.7" }, "require-dev": { - "symfony/phpunit-bridge": "^3.4", + "symfony/phpunit-bridge": "^4.2 || ^5.0", "phpspec/prophecy": "^1.10" }, "suggest": { @@ -52,11 +49,12 @@ "config": { "platform": { "php": "5.3.9" - } + }, + "platform-check": false }, "extra": { "branch-alias": { - "dev-master": "1.10-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -66,8 +64,13 @@ }, "autoload-dev": { "psr-4": { - "Composer\\Test\\": "tests/Composer/Test" - } + "Composer\\Test\\": "tests/Composer/Test", + "Composer\\PHPStanRules\\": "phpstan/Rules/src", + "Composer\\PHPStanRulesTests\\": "phpstan/Rules/tests" + }, + "classmap": [ + "phpstan/Rules/tests/data" + ] }, "bin": [ "bin/composer" diff --git a/composer.spec b/composer.spec index 4d788f6..3b12ae5 100644 --- a/composer.spec +++ b/composer.spec @@ -10,23 +10,37 @@ # For compatibility with SCL %undefine __brp_mangle_shebangs -%global gh_commit 956608ea4f7de9e58c53dfb019d85ae62b193c39 +%global gh_commit fa90c099e9c402bcf83fa83d3276d160cf9986fe %global gh_short %(c=%{gh_commit}; echo ${c:0:7}) -%global gh_branch 1.0-dev +%global gh_branch 2.0-dev %global gh_owner composer %global gh_project composer %global with_tests %{?_without_tests:0}%{!?_without_tests:1} -%global api_version 1.1.0 -%global run_version 1.0.0 +%global api_version 2.0.0 +%global run_version 2.0.0 -%global upstream_version 1.10.7 -#global upstream_prever RC +%global upstream_version 2.0.0 +%global upstream_prever alpha1 -%if 0 -# see https://forum.remirepo.net/viewtopic.php?id=3677 -%global symfony_prefix php-symfony3 +%if 0%{?fedora} >= 32 || 0%{?rhel} >=8 +%global symfony_prefix php-symfony4 +%global symfony_path %{_datadir}/php/Symfony4 +%global symfony_min 4.4 +%global _phpunit %{_bindir}/phpunit7 %else +# remirepo:1 +%if 0 %global symfony_prefix php-symfony +%global symfony_path %{_datadir}/php/Symfony +%global symfony_min 2.8 +%global _phpunit %{_bindir}/phpunit +# remirepo:6 +%else +%global symfony_prefix php-symfony3 +%global symfony_path %{_datadir}/php/Symfony3 +%global symfony_min 3.4 +%global _phpunit %{_bindir}/phpunit7 +%endif %endif Name: composer @@ -37,8 +51,6 @@ Summary: Dependency Manager for PHP License: MIT URL: https://getcomposer.org/ Source0: %{gh_project}-%{upstream_version}%{?upstream_prever}-%{gh_short}.tgz -Source1: %{name}-autoload.php -Source2: %{name}-bootstrap.php # Profile scripts Source3: %{name}.sh Source4: %{name}.csh @@ -53,77 +65,82 @@ BuildRequires: php-cli %if %{with_tests} %if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 BuildRequires: (php-composer(composer/ca-bundle) >= 1.0 with php-composer(composer/ca-bundle) < 2) -BuildRequires: (php-composer(composer/semver) >= 1.0 with php-composer(composer/semver) < 2) +BuildRequires: (php-composer(composer/semver) >= 3.0 with php-composer(composer/semver) < 4) BuildRequires: (php-composer(composer/spdx-licenses) >= 1.2 with php-composer(composer/spdx-licenses) < 2) BuildRequires: (php-composer(composer/xdebug-handler) >= 1.1 with php-composer(composer/xdebug-handler) < 2) BuildRequires: (php-composer(seld/jsonlint) >= 1.4 with php-composer(seld/jsonlint) < 2) BuildRequires: (php-composer(seld/phar-utils) >= 1.0 with php-composer(seld/phar-utils) < 2) BuildRequires: (php-composer(psr/log) >= 1.0 with php-composer(psr/log) < 2) BuildRequires: (php-composer(justinrainbow/json-schema) >= 5.2.10 with php-composer(justinrainbow/json-schema) < 6) +BuildRequires: (php-composer(react/promise) >= 2.7 with php-composer(react/promise) < 3) %else BuildRequires: php-composer-ca-bundle -BuildRequires: php-composer-semver +BuildRequires: php-composer-semver3 BuildRequires: php-composer-spdx-licenses >= 1.2 BuildRequires: php-composer-xdebug-handler >= 1.1 BuildRequires: php-jsonlint >= 1.4 BuildRequires: php-seld-phar-utils BuildRequires: php-PsrLog BuildRequires: php-justinrainbow-json-schema5 >= 5.2.10 +BuildRequires: php-react-promise >= 2.7 %endif -BuildRequires: %{symfony_prefix}-console -BuildRequires: %{symfony_prefix}-finder -BuildRequires: %{symfony_prefix}-filesystem -BuildRequires: %{symfony_prefix}-process +BuildRequires: %{symfony_prefix}-console >= %{symfony_min} +BuildRequires: %{symfony_prefix}-finder >= %{symfony_min} +BuildRequires: %{symfony_prefix}-filesystem >= %{symfony_min} +BuildRequires: %{symfony_prefix}-process >= %{symfony_min} BuildRequires: php-zip # From composer.json, "require-dev": { -# "symfony/phpunit-bridge": "^3.4", +# "symfony/phpunit-bridge": "^4.2 || ^5.0", # "phpspec/prophecy": "^1.10" -BuildRequires: phpunit +BuildRequires: %{_phpunit} # For autoloader -BuildRequires: php-composer(fedora/autoloader) >= 0.1.2 -BuildRequires: php-seld-phar-utils >= 1.0.1 -BuildRequires: php-PsrLog >= 1.0.0-8 +BuildRequires: php-fedora-autoloader-devel +BuildRequires: php-seld-phar-utils >= 1.1 +BuildRequires: php-PsrLog >= 1.1 %endif # From composer.json, "require": { # "php": "^5.3.2 || ^7.0", # "composer/ca-bundle": "^1.0", -# "composer/semver": "^1.0", +# "composer/semver": "^3.0", # "composer/spdx-licenses": "^1.2", # "composer/xdebug-handler": "^1.1", # "justinrainbow/json-schema": "^5.2.10", # "psr/log": "^1.0" # "seld/jsonlint": "~1.4", # "seld/phar-utils": "^1.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", +# "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", +# "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", +# "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", +# "symfony/process": "^^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", +# "react/promise": "^1.2 || ^2.7" Requires: php(language) >= 5.3.2 Requires: php-cli %if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 Requires: (php-composer(composer/ca-bundle) >= 1.0 with php-composer(composer/ca-bundle) < 2) -Requires: (php-composer(composer/semver) >= 1.0 with php-composer(composer/semver) < 2) +Requires: (php-composer(composer/semver) >= 3.0 with php-composer(composer/semver) < 4) Requires: (php-composer(composer/spdx-licenses) >= 1.2 with php-composer(composer/spdx-licenses) < 2) Requires: (php-composer(composer/xdebug-handler) >= 1.1 with php-composer(composer/xdebug-handler) < 2) Requires: (php-composer(seld/jsonlint) >= 1.4 with php-composer(seld/jsonlint) < 2) Requires: (php-composer(seld/phar-utils) >= 1.0 with php-composer(seld/phar-utils) < 2) Requires: (php-composer(psr/log) >= 1.0 with php-composer(psr/log) < 2) Requires: (php-composer(justinrainbow/json-schema) >= 5.2.10 with php-composer(justinrainbow/json-schema) < 6) +Requires: (php-composer(react/promise) >= 2.7 with php-composer(react/promise) < 3) %else Requires: php-composer-ca-bundle -Requires: php-composer-semver +Requires: php-composer-semver3 Requires: php-composer-spdx-licenses >= 1.2 Requires: php-composer-xdebug-handler >= 1.1 Requires: php-jsonlint >= 1.4 Requires: php-seld-phar-utils Requires: php-PsrLog Requires: php-justinrainbow-json-schema5 >= 5.2.10 +Requires: php-react-promise >= 2.7 %endif -Requires: %{symfony_prefix}-console -Requires: %{symfony_prefix}-finder -Requires: %{symfony_prefix}-process -Requires: %{symfony_prefix}-filesystem +Requires: %{symfony_prefix}-console >= %{symfony_min} +Requires: %{symfony_prefix}-finder >= %{symfony_min} +Requires: %{symfony_prefix}-process >= %{symfony_min} +Requires: %{symfony_prefix}-filesystem >= %{symfony_min} # From composer.json, suggest # "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", # "ext-zip": "Enabling the zip extension allows you to unzip archives", @@ -133,12 +150,12 @@ Requires: php-zip Requires: php-zlib # For our autoloader Requires: php-composer(fedora/autoloader) -Requires: php-seld-phar-utils >= 1.0.1 -Requires: php-PsrLog >= 1.0.0-8 -# From phpcompatinfo +Requires: php-seld-phar-utils >= 1.1 +Requires: php-PsrLog >= 1.1 +# From phpcompatinfo for version 2.0.0 +Requires: php-ctype Requires: php-curl Requires: php-date -Requires: php-dom Requires: php-filter Requires: php-hash Requires: php-iconv @@ -146,10 +163,11 @@ Requires: php-intl Requires: php-json Requires: php-libxml Requires: php-mbstring +Requires: php-pcntl Requires: php-pcre Requires: php-phar +Requires: php-posix Requires: php-reflection -Requires: php-simplexml Requires: php-spl Requires: php-tokenizer Requires: php-xsl @@ -180,10 +198,35 @@ if grep -r '\.\./res'; then exit 1 fi -cp -p %{SOURCE1} src/Composer/autoload.php -cp -p %{SOURCE2} tests/bootstrap.php +phpab --template fedora --output src/Composer/autoload.php src/Composer +cat << 'EOF' | tee -a src/Composer/autoload.php + +\Fedora\Autoloader\Dependencies::required([ + '%{symfony_path}/Component/Console/autoload.php', + '%{symfony_path}/Component/Finder/autoload.php', + '%{symfony_path}/Component/Process/autoload.php', + '%{symfony_path}/Component/Filesystem/autoload.php', + '%{_datadir}/php/Seld/JsonLint/autoload.php', + '%{_datadir}/php/Seld/PharUtils/autoload.php', + '%{_datadir}/php/Composer/CaBundle/autoload.php', + '%{_datadir}/php/Composer/Spdx/autoload.php', + '%{_datadir}/php/Composer/Semver3/autoload.php', + '%{_datadir}/php/Composer/XdebugHandler/autoload.php', + '%{_datadir}/php/Psr/Log/autoload.php', + '%{_datadir}/php/JsonSchema5/autoload.php', + '%{_datadir}/php/React/Promise/autoload.php', +]); +EOF + +cat << 'EOF' | tee tests/bootstrap.php + - 2.0.0~alpha1-1 +- update to 2.0.0-alpha1 +- switch to Symfony 4 +- switch to phpunit7 +- raise dependency on composer/semver 3 +- add dependency on react/promise 2.7 + * Wed Jun 3 2020 Remi Collet - 1.10.7-1 - update to 1.10.7 - raise dependency on justinrainbow/json-schema 5.2.10 -- cgit