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 |