diff options
Diffstat (limited to 'php-cs-fixer.spec')
| -rw-r--r-- | php-cs-fixer.spec | 385 | 
1 files changed, 84 insertions, 301 deletions
| diff --git a/php-cs-fixer.spec b/php-cs-fixer.spec index 146e29d..a4e6d04 100644 --- a/php-cs-fixer.spec +++ b/php-cs-fixer.spec @@ -1,6 +1,6 @@  # remirepo/fedora spec file for php-cs-fixer  # -# Copyright (c) 2016-2021 Remi Collet +# Copyright (c) 2016-2022 Remi Collet  # License: CC-BY-SA  # http://creativecommons.org/licenses/by-sa/4.0/  # @@ -10,268 +10,110 @@  # For compatibility with SCL  %undefine __brp_mangle_shebangs -%global gh_commit    75ac86f33fab4714ea5a39a396784d83ae3b5ed8 +%global gh_commit    333f15e07c866e33e2765e84ba1e0b88e6a3af3b  %global gh_short     %(c=%{gh_commit}; echo ${c:0:7})  #global gh_date      20150717  %global gh_owner     FriendsOfPHP  %global gh_project   PHP-CS-Fixer -%global php_home     %{_datadir}/php -%if 0%{?fedora} >= 36 -%bcond_with          tests -%else -%bcond_without       tests -%endif - -# Bundled this fork which is not designed for use outside of php-cs-fixer -# https://github.com/PHP-CS-Fixer/diff/releases -%global gh_diff_owner   PHP-CS-Fixer -%global gh_diff_version 1.3.1 -%global gh_diff_commit  dbd31aeb251639ac0b9e7e29405c1441907f5759 -%global gh_diff_short   %(c=%{gh_diff_commit}; echo ${c:0:7})  Name:           php-cs-fixer -Version:        2.19.3 +Version:        3.5.0  Release:        1%{?gh_date:.%{gh_date}git%{gh_short}}%{?dist} -Summary:        A tool to automatically fix PHP code style +Summary:        PHP Coding Standards Fixer -License:        MIT +License:        MIT and BSD  URL:            https://github.com/%{gh_owner}/%{gh_project}  # git snapshot to get upstream test suite  Source0:        %{name}-%{version}-%{gh_short}.tgz -Source1:        %{name}-diff-%{gh_diff_version}-%{gh_diff_short}.tgz  Source2:        makesrc.sh  # Use our autoloader  Patch0:         %{name}-autoload.patch  BuildArch:      noarch -%if %{with tests} -# For tests -# as we use phpunit9 -BuildRequires:  php(language) >= 7.3 -BuildRequires:  php-tokenizer -# remirepo:1 -%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 -BuildRequires:  (php-composer(composer/semver)               >= 3.0 with php-composer(composer/semver)               < 4) -BuildRequires:  (php-composer(composer/xdebug-handler)       >= 2.0 with php-composer(composer/xdebug-handler)       < 3) -BuildRequires:  (php-composer(doctrine/annotations)          >= 1.2 with php-composer(doctrine/annotations)          < 2) -BuildRequires:  (php-composer(sebastian/diff)                >= 1.4 with php-composer(sebastian/diff)                < 2) -# remirepo:6 -%else -BuildRequires:  php-composer-semver3              >= 3.0 -BuildRequires:  php-composer-xdebug-handler2      >= 2.0 -BuildRequires:  php-doctrine-annotations          >= 1.2 -BuildRequires:  php-phpunit-diff                  >= 1.4 -%endif -BuildRequires:  php-symfony3-console -BuildRequires:  php-symfony3-event-dispatcher -BuildRequires:  php-symfony3-filesystem -BuildRequires:  php-symfony3-finder -BuildRequires:  php-symfony3-options-resolver -BuildRequires:  php-symfony3-process -BuildRequires:  php-symfony3-stopwatch -BuildRequires:  php-symfony3-yaml -BuildRequires:  php-mbstring -BuildRequires:  php-xml -BuildRequires:  php-reflection -BuildRequires:  php-dom +BuildRequires:  php(language) >= 7.4 +BuildRequires:  php-cli  BuildRequires:  php-json -BuildRequires:  php-pcre -BuildRequires:  php-phar -BuildRequires:  php-spl -BuildRequires:  php-xml -# Missing dependency for Console -BuildRequires:  php-symfony3-debug -BuildRequires:  php-symfony3-debug -# From composer.json,     "require-dev": { -# NOTICE: listener disabled during test suite -#        "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0", -#        "keradus/cli-executor": "^1.4", -#        "justinrainbow/json-schema": "^5.0", -#        "mikey179/vfsstream": "^1.6", -#        "php-coveralls/php-coveralls": "^2.4.1", -#        "php-cs-fixer/accessible-object": "^1.0", -#        "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", -#        "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", -#        "phpspec/prophecy-phpunit": "^1.1 || ^2.0", -#        "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.13 || ^9.5", -#        "phpunitgoodpractices/polyfill": "^1.5", -#        "phpunitgoodpractices/traits": "^1.9.1", -#        "sanmai/phpunit-legacy-adapter": "^6.4 || ^8.2.1", -#        "symfony/phpunit-bridge": "^5.2.1", -#        "symfony/yaml": "^3.0 || ^4.0 || ^5.0" -# ignored as test using it fail strangely -#BuildRequires: php-composer(keradus/cli-executor) <  2 -#BuildRequires: php-composer(keradus/cli-executor) >= 1.0 -# remirepo:1 -%if 0%{?fedora} >= 28 || 0%{?rhel} >= 8 -BuildRequires:  (php-composer(justinrainbow/json-schema)                         >= 5.0   with php-composer(justinrainbow/json-schema)                         < 6) -BuildRequires:  (php-composer(mikey179/vfsstream)                                >= 1.6   with php-composer(mikey179/vfsstream)                                < 2) -BuildRequires:  (php-composer(php-cs-fixer/accessible-object)                    >= 1.0   with php-composer(php-cs-fixer/accessible-object)                    < 2) -BuildRequires:  (php-composer(php-cs-fixer/phpunit-constraint-isidenticalstring) >= 1.2   with php-composer(php-cs-fixer/phpunit-constraint-isidenticalstring) < 2) -BuildRequires:  (php-composer(php-cs-fixer/phpunit-constraint-xmlmatchesxsd)     >= 1.2.1 with php-composer(php-cs-fixer/phpunit-constraint-xmlmatchesxsd)     < 2) -BuildRequires:  (php-composer(phpspec/prophecy-phpunit)                          >= 2.0   with php-composer(phpspec/prophecy-phpunit)                          < 3) -BuildRequires:  (php-composer(phpunitgoodpractices/polyfill)                     >= 1.5   with php-composer(phpunitgoodpractices/polyfill)                     < 2) -BuildRequires:  (php-composer(phpunitgoodpractices/traits)                       >= 1.9.1 with php-composer(phpunitgoodpractices/traits)                       < 2) -BuildRequires:  (php-composer(sanmai/phpunit-legacy-adapter)                     >= 8.2.1 with php-composer(sanmai/phpunit-legacy-adapter)                     < 9) -# remirepo:11 -%else -BuildRequires:  php-justinrainbow-json-schema5 -BuildRequires:  php-mikey179-vfsstream                                          >= 1.6 -BuildRequires:  php-cs-fixer-accessible-object -BuildRequires:  php-cs-fixer-phpunit-constraint-isidenticalstring               >= 1.2 -BuildRequires:  php-cs-fixer-phpunit-constraint-xmlmatchesxsd                   >= 1.2.1 -BuildRequires:  php-phpspec-prophecy-phpunit                                    >= 2.0 -BuildRequires:  php-phpunitgoodpractices-polyfill                               >= 1.5 -BuildRequires:  php-phpunitgoodpractices-traits                                 >= 1.9.1 -BuildRequires:  php-sanmai-phpunit-legacy-adapter                               >= 8.2.1 -%endif -%global phpunit %{_bindir}/phpunit9 -BuildRequires:  phpunit9                                                        >= 9.4.4 -%endif -# Autoloader -BuildRequires:  php-fedora-autoloader-devel - -# From composer.json,     "require": { -#        "php": "^5.6 || ^7.0 || ^8.0", -#        "ext-json": "*", -#        "ext-tokenizer": "*", -#        "composer/semver": "^1.4 || ^2.0 || ^3.0", -#        "composer/xdebug-handler": "^1.2 || ^2.0", -#        "doctrine/annotations": "^1.2", -#        "php-cs-fixer/diff": "^1.3", -#        "symfony/console": "^3.4.43 || ^4.1.6 || ^5.0", -#        "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0", -#        "symfony/filesystem": "^3.0 || ^4.0 || ^5.0", -#        "symfony/finder": "^3.0 || ^4.0 || ^5.0", -#        "symfony/options-resolver": "^3.0 || ^4.0", -#        "symfony/polyfill-php70": "^1.0", -#        "symfony/polyfill-php72": "^1.4", -#        "symfony/polyfill-xml": "^1.3", -#        "symfony/process": "^3.0 || ^4.0 || ^5.0", -#        "symfony/stopwatch": "^3.0 || ^4.0 || ^5.0" -Requires:       php(language) >= 7.2 + +# see composer.json and makesrc.sh +Requires:       php(language) >= 7.4  Requires:       php-json  Requires:       php-tokenizer -# remirepo:1 -%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 -Requires:       (php-composer(composer/semver)               >= 3.0 with php-composer(composer/semver)               < 4) -Requires:       (php-composer(composer/xdebug-handler)       >= 2.0 with php-composer(composer/xdebug-handler)       < 3) -Requires:       (php-composer(doctrine/annotations)          >= 1.2 with php-composer(doctrine/annotations)          < 2) -Requires:       (php-composer(sebastian/diff)                >= 1.4 with php-composer(sebastian/diff)                < 2) -# remirepo:6 -%else -Requires:       php-composer-semver3              >= 3.0 -Requires:       php-composer-xdebug-handler2      >= 2.0 -Requires:       php-doctrine-annotations          >= 1.2 -Requires:       php-phpunit-diff                  >= 1.4 -%endif -Requires:       php-symfony3-console -Requires:       php-symfony3-event-dispatcher -Requires:       php-symfony3-filesystem -Requires:       php-symfony3-finder -Requires:       php-symfony3-options-resolver -Requires:       php-symfony3-process -Requires:       php-symfony3-stopwatch -# Missing dependency for Console -Requires:       php-symfony3-debug -# From composer.json, "suggest": { -#        "ext-dom": "For handling output formats in XML", -#        "ext-mbstring": "For handling non-UTF8 characters.", -#        "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.", -#        "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.", -#        "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible." +# From phpcompatinfo report for version 3.5.0  Requires:       php-dom +Requires:       php-intl  Requires:       php-mbstring -# remirepo:1 -%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 -Recommends:     php-composer(php-cs-fixer/phpunit-constraint-isidenticalstring) -Recommends:     php-composer(php-cs-fixer/phpunit-constraint-xmlmatchesxsd) -# remirepo:1 -%endif -# From phpcompatinfo report for version 2.4.0 -Requires:       php-cli -Requires:       php-reflection -Requires:       php-pcre -Requires:       php-phar -Requires:       php-spl -Requires:       php-xml -# Autoloader -Requires:       php-composer(fedora/autoloader) - -Provides:       bundled(php-cs-fixer/diff) = %{gh_diff_version} + +# Package was renamed +Obsoletes:      php-cs-fixer3 < 3.5 +Provides:       php-cs-fixer3 = %{version} + +# Bundled PHP libraries +Provides:       bundled(php-composer-pcre) = 1.0.0 +Provides:       bundled(php-composer-semver) = 3.2.7 +Provides:       bundled(php-composer-xdebug-handler) = 3.0.1 +Provides:       bundled(php-doctrine-annotations) = 1.13.2 +Provides:       bundled(php-doctrine-lexer) = 1.2.2 +Provides:       bundled(php-php-cs-fixer-diff) = v2.0.2 +Provides:       bundled(php-psr-cache) = 1.0.1 +Provides:       bundled(php-psr-container) = 1.1.2 +Provides:       bundled(php-psr-event-dispatcher) = 1.0.0 +Provides:       bundled(php-psr-log) = 1.1.4 +Provides:       bundled(php-symfony-console) = v5.4.2 +Provides:       bundled(php-symfony-deprecation-contracts) = v2.5.0 +Provides:       bundled(php-symfony-event-dispatcher) = v5.4.0 +Provides:       bundled(php-symfony-event-dispatcher-contracts) = v2.5.0 +Provides:       bundled(php-symfony-filesystem) = v5.4.0 +Provides:       bundled(php-symfony-finder) = v5.4.2 +Provides:       bundled(php-symfony-options-resolver) = v5.4.0 +Provides:       bundled(php-symfony-polyfill-ctype) = v1.24.0 +Provides:       bundled(php-symfony-polyfill-intl-grapheme) = v1.24.0 +Provides:       bundled(php-symfony-polyfill-intl-normalizer) = v1.24.0 +Provides:       bundled(php-symfony-polyfill-mbstring) = v1.24.0 +Provides:       bundled(php-symfony-polyfill-php73) = v1.24.0 +Provides:       bundled(php-symfony-polyfill-php80) = v1.24.0 +Provides:       bundled(php-symfony-polyfill-php81) = v1.24.0 +Provides:       bundled(php-symfony-process) = v5.4.2 +Provides:       bundled(php-symfony-service-contracts) = v2.5.0 +Provides:       bundled(php-symfony-stopwatch) = v5.4.0 +Provides:       bundled(php-symfony-string) = v5.4.2 +  Provides:       php-composer(friendsofphp/php-cs-fixer) = %{version}  %description -The PHP Coding Standards Fixer tool fixes most issues in your code when you -want to follow the PHP coding standards as defined in the PSR-1 and PSR-2 -documents and many more. +The PHP Coding Standards Fixer (PHP CS Fixer) tool fixes your code to follow +standards; whether you want to follow PHP coding standards as defined in the +PSR-1, PSR-2, etc., or other community driven ones like the Symfony one. You +can also define your (team's) style through configuration. + +It can modernize your code (like converting the pow function to the ** operator +on PHP 5.6) and (micro) optimize it. -If you are already using a linter to identify coding standards problems in -your code, you know that fixing them by hand is tedious, especially on large +If you are already using a linter to identify coding standards problems in your +code, you know that fixing them by hand is tedious, especially on large  projects. This tool does not only detect them, but also fixes them for you.  %prep -%setup -q -n %{gh_project}-%{gh_commit} -a1 +%setup -q -n %{gh_project}-%{gh_commit}  %patch0 -p1 -b .rpm -mv diff-%{gh_diff_commit}/src src/diff - -find src -name \*rpm -delete -print - -# Fix version -sed -e '/VERSION/s/-DEV//' -i src/Console/Application.php - -# from composer.json, "autoload" / "classmap" -TESTS=" -  tests/Test/AbstractFixerTestCase.php -  tests/Test/AbstractIntegrationCaseFactory.php -  tests/Test/AbstractIntegrationTestCase.php -  tests/Test/Assert/AssertTokensTrait.php -  tests/Test/IntegrationCase.php -  tests/Test/IntegrationCaseFactory.php -  tests/Test/IntegrationCaseFactoryInterface.php -  tests/Test/InternalIntegrationCaseFactory.php -  tests/Test/IsIdenticalConstraint.php -  tests/Test/TokensWithObservedTransformers.php -  tests/TestCase.php -" -for i in $TESTS; do -  mkdir -p src/$(dirname $i) -  cp -p $i src/$i -done - -# fix dev-tools path -sed -e 's:../../../ci:ci:' -i src/Console/Command/HelpCommand.php -cp -pr ci-integration.sh  src/Console/Command/ - -# tolerant because conditional definition in tests/TestCase.php -phpab --template fedora \ -      --tolerant \ -      --output src/autoload.php \ -      src/tests src/diff - -cat << 'EOF' | tee -a src/autoload.php - -\Fedora\Autoloader\Autoload::addPsr4('PhpCsFixer\\', __DIR__); -\Fedora\Autoloader\Dependencies::required([ -    '%{php_home}/Composer/Semver3/autoload.php', -    '%{php_home}/Composer/XdebugHandler2/autoload.php', -    '%{php_home}/Doctrine/Common/Annotations/autoload.php', -    '%{php_home}/Symfony3/Component/Console/autoload.php', -    '%{php_home}/Symfony3/Component/EventDispatcher/autoload.php', -    '%{php_home}/Symfony3/Component/Filesystem/autoload.php', -    '%{php_home}/Symfony3/Component/Finder/autoload.php', -    '%{php_home}/Symfony3/Component/OptionsResolver/autoload.php', -    '%{php_home}/Symfony3/Component/Process/autoload.php', -    '%{php_home}/Symfony3/Component/Stopwatch/autoload.php', -]); -\Fedora\Autoloader\Dependencies::optional([ -    '%{php_home}/PhpCsFixer/PhpunitConstraintIsIdenticalString/autoload.php', -    '%{php_home}/PhpCsFixer/PhpunitConstraintXmlMatchesXsd/autoload.php', -]); -EOF + +: List bundled libraries and Licenses +php -r ' +	$pkgs = file_get_contents("vendor/composer/installed.json"); +	$pkgs = json_decode($pkgs, true); +	if (!is_array($pkgs) || !isset($pkgs["packages"])) { +        echo "cant decode json file\n"; +		exit(3); +	} +	$lic = []; +    foreach($pkgs["packages"] as $pkg) { +        printf("Provides:       bundled(php-%s) = %s\n", str_replace(["/", "_"], ["-", "-"], $pkg["name"]), $pkg["version"]); +        $lic = array_merge($lic, $pkg["license"]); +	} +	sort($lic); +	printf("\nLicense: %s\n", implode(" and ", array_unique($lic)));'  %build @@ -280,81 +122,17 @@ EOF  %install  : Library -mkdir -p   %{buildroot}%{php_home} -cp -pr src %{buildroot}%{php_home}/PhpCsFixer +mkdir -p      %{buildroot}%{_datadir}/%{name} +cp -pr src    %{buildroot}%{_datadir}/%{name}/src +cp -pr vendor %{buildroot}%{_datadir}/%{name}/vendor  : Command  install -Dpm755 %{name} %{buildroot}%{_bindir}/%{name}  %check -%if %{with tests} -mkdir vendor -cat << 'EOF' | tee vendor/autoload.php -<?php -// Force version for local, when both versions are available -\Fedora\Autoloader\Dependencies::required([ -    '%{php_home}/org/bovigo/vfs/autoload.php', -    '%{php_home}/JsonSchema5/autoload.php', -    '%{php_home}/PhpCsFixer/AccessibleObject/autoload.php', -    '%{php_home}/Prophecy/PhpUnit/autoload.php', -    '%{php_home}/LegacyPHPUnit/autoload.php', -    '%{php_home}/PHPUnitGoodPractices/Polyfill/autoload.php', -    '%{buildroot}%{php_home}/PhpCsFixer/autoload.php', -    '%{php_home}/Symfony3/Component/Yaml/autoload.php', -    __DIR__ . '/ExpectDeprecationTrait.php', -]); -\Fedora\Autoloader\Autoload::addPsr4('PhpCsFixer\\Tests\\', dirname(__DIR__) . '/tests'); -EOF - -cat << 'EOF' | tee vendor/ExpectDeprecationTrait.php -<?php - -namespace Symfony\Bridge\PhpUnit; - -trait ExpectDeprecationTrait /* Fake trait which skip test relying on it */ -{ -    public function expectDeprecation(): void -    { -		$this->markTestSkipped("no Symfony v5"); -    } -} -EOF - -# test using keradus/cli-executor -rm tests/Smoke/CiIntegrationTest.php -rm tests/Smoke/StdinTest.php -rm tests/Smoke/InstallViaComposerTest.php -# strange failure -rm tests/Fixtures/Integration/priority/combine_consecutive_issets,no_singleline_whitespace_before_semicolons.test -# test checking documentation -rm tests/AutoReview/DocumentationTest.php - -# Disable listener -sed -e '/<listeners>/,/<\/listeners>/d' phpunit.xml.dist >phpunit.xml -sed -e '/ExpectDeprecationTrait/d' \ -    -i tests/Fixer/CastNotation/LowercaseCastFixerTest.php tests/Fixer/CastNotation/ShortScalarCastFixerTest.php -# skip as rely on composer autoloader for phpunit -rm tests/Fixer/PhpUnit/PhpUnitNamespacedFixerTest.php -rm tests/AutoReview/ProjectCodeTest.php - -# Redirect to buildroot -sed -e 's:%{php_home}:%{buildroot}%{php_home}:' -i %{name} - -ret=0 -# skip testFix74Deprecated as we don't use symfony/phpunit-bridge -for cmdarg in "php %{phpunit}" php73 php74 php80; do -  if which $cmdarg; then -    set $cmdarg -    $1 -d memory_limit=2G ${2:-%{_bindir}/phpunit9} \ -       --filter '^((?!(testFixerContainsAllPhpunitStaticMethodsInItsList|testFix74Deprecated|testFixersPriorityPairsHaveIntegrationTest|testThereAreNoExtraFiles|testFixersDocumentationIndexFileIsUpToDate|testInheritance|testFixerDefinitions|testPatternValidation)).)*$' \ -      || ret=1 -  fi -done -exit $ret -%else -: Test suite disabled -%endif +sed -e 's:%{_datadir}:%{buildroot}%{_datadir}:' -i %{name} +./%{name} --version | grep %{version}  %files @@ -362,12 +140,17 @@ exit $ret  %{!?_licensedir:%global license %%doc}  %license LICENSE  %doc composer.json +%doc vendor/composer/installed.json  %doc *.md -%{php_home}/PhpCsFixer +%{_datadir}/%{name}  %{_bindir}/%{name}  %changelog +* Fri Jan 14 2022 Remi Collet <remi@remirepo.net> - 3.5.0-1 +- update to 3.5.0 +- install in /usr/share/php-cs-fixer with all bundled libraries +  * Tue Nov 16 2021 Remi Collet <remi@remirepo.net> - 2.19.3-1  - update to 2.19.3 | 
