summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2018-06-25 11:30:04 +0200
committerRemi Collet <remi@remirepo.net>2018-06-25 11:30:04 +0200
commitc95f7c1745ea4df58f5a282bd9b9f0e1e3c89e04 (patch)
tree94efefb553fb28be55d2d30dc6b4f1b3179c053c
parent9862d98c011627d5bd92dd3b1a10c6eccf15da78 (diff)
add mandatory dependency on one PHPUnit version
add phpunitgoodpractices/traits 1.5.1 fix autoloader #1594663
-rw-r--r--composer-polyfill.json (renamed from composer.json)0
-rw-r--r--composer-traits.json32
-rwxr-xr-xmakesrc.sh26
-rw-r--r--php-phpunitgoodpractices-polyfill.spec68
4 files changed, 112 insertions, 14 deletions
diff --git a/composer.json b/composer-polyfill.json
index f26f435..f26f435 100644
--- a/composer.json
+++ b/composer-polyfill.json
diff --git a/composer-traits.json b/composer-traits.json
new file mode 100644
index 0000000..4275245
--- /dev/null
+++ b/composer-traits.json
@@ -0,0 +1,32 @@
+{
+ "name": "phpunitgoodpractices/traits",
+ "type": "library",
+ "description": "Highly opinionated PHPUnit good practices enforcer.",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Dariusz RumiƄski",
+ "email": "dariusz.ruminski@gmail.com"
+ }
+ ],
+ "require": {
+ "php": "^5.5 || ^7.0",
+ "phpunit/phpunit": "~4.0.0 || ~4.1.0 || ~4.2.0 || ~4.3.0 || ~4.4.0 || ~4.5.0 || ~4.6.0 || ~4.8.0 || ~5.3.0 || ~5.4.0 || ~5.5.0 || ~5.6.0 || ~5.7.0 || ~6.0.0 || ~6.1.0 || ~6.2.0 || ~6.3.0 || ~6.4.0 || ~6.5.0 || ~7.0.0 || ~7.1.0 || ~7.2.6"
+ },
+ "require-dev": {
+ "phpunitgoodpractices/polyfill": "^1.1"
+ },
+ "conflict": {
+ "hhvm": "*"
+ },
+ "config": {
+ "optimize-autoloader": true,
+ "sort-packages": true
+ },
+ "autoload": {
+ "psr-4": { "PHPUnitGoodPractices\\Traits\\": "src/" }
+ },
+ "autoload-dev": {
+ "psr-4": { "PHPUnitGoodPractices\\Traits\\Tests\\": "tests/" }
+ }
+}
diff --git a/makesrc.sh b/makesrc.sh
index dfd5c2a..62e19db 100755
--- a/makesrc.sh
+++ b/makesrc.sh
@@ -15,7 +15,7 @@ git clone https://github.com/$OWNER/$PROJECT.git $PROJECT-$COMMIT
echo "Getting commit..."
pushd $PROJECT-$COMMIT
git checkout $COMMIT
-cp composer.json ../composer.json
+cp composer.json ../composer-polyfill.json
popd
echo "Archiving..."
@@ -24,4 +24,28 @@ tar czf $NAME-$VERSION-$SHORT.tgz --exclude .git $PROJECT-$COMMIT
echo "Cleaning..."
rm -rf $PROJECT-$COMMIT
+PROJECT=Traits
+VERSION=$(sed -n '/^%global tr_version/{s/.* //;p}' $NAME.spec)
+COMMIT=$(sed -n '/^%global tr_commit/{s/.* //;p}' $NAME.spec)
+SHORT=${COMMIT:0:7}
+NAME=php-phpunitgoodpractices-traits
+
+echo -e "\nCreate git snapshot\nName=$NAME, Owner=$OWNER, Project=$PROJECT, Version=$VERSION\n"
+
+echo "Cloning..."
+git clone https://github.com/$OWNER/$PROJECT.git $PROJECT-$COMMIT
+
+echo "Getting commit..."
+pushd $PROJECT-$COMMIT
+git checkout $COMMIT
+cp composer.json ../composer-traits.json
+popd
+
+echo "Archiving..."
+tar czf $NAME-$VERSION-$SHORT.tgz --exclude .git $PROJECT-$COMMIT
+
+echo "Cleaning..."
+rm -rf $PROJECT-$COMMIT
+
+
echo "Done."
diff --git a/php-phpunitgoodpractices-polyfill.spec b/php-phpunitgoodpractices-polyfill.spec
index 3eb9c65..d930443 100644
--- a/php-phpunitgoodpractices-polyfill.spec
+++ b/php-phpunitgoodpractices-polyfill.spec
@@ -20,10 +20,14 @@
%global ns_project Polyfill
%global php_home %{_datadir}/php
%global with_tests 0%{!?_without_tests:1}
+# Traits
+%global tr_commit 10d22ad5e222b5e5eae6941aac91c068397b5127
+%global tr_short %(c=%{tr_commit}; echo ${c:0:7})
+%global tr_version 1.5.1
Name: php-%{pk_vendor}-%{pk_project}
Version: 1.1.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Lacking future-compat polyfills for PHPUnit
Group: Development/Tools
@@ -31,7 +35,8 @@ License: MIT
URL: https://github.com/%{gh_owner}/%{gh_project}
# git snapshot to get upstream test suite (none for now)
Source0: %{name}-%{version}-%{gh_short}.tgz
-Source1: makesrc.sh
+Source1: php-%{pk_vendor}-traits-%{tr_version}-%{tr_short}.tgz
+Source2: makesrc.sh
BuildArch: noarch
%if %{with_tests}
@@ -48,13 +53,21 @@ BuildRequires: php-fedora-autoloader-devel
# "php": "^5.5 || ^7.0",
# "phpunit/phpunit": "^4.0 || ^5.3 || ^6.0 || ^7.0"
Requires: php(language) >= 5.5
-# ignore phpunit dep, package using it will run the proper phpunit command (and autoloader)
+# remirepo:1
+%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
+Requires: (phpunit7 or phpunit6 or php-phpunit-PHPUnit)
+# remirepo:3
+%else
+Requires: php-phpunit-PHPUnit
+%endif
# From phpcompatinfo report for version 1.0.0
# nothing
# Autoloader
Requires: php-composer(fedora/autoloader)
Provides: php-composer(%{pk_vendor}/%{pk_project}) = %{version}
+Provides: php-%{pk_vendor}-traits = %{tr_version}
+Provides: php-composer(%{pk_vendor}/traits) = %{tr_version}
%description
@@ -64,16 +77,31 @@ Autoloader: %{php_home}/%{ns_vendor}/%{ns_project}/autoload.php
%prep
-%setup -q -n %{gh_project}-%{gh_commit}
+%setup -q -n %{gh_project}-%{gh_commit} -a 1
+mv composer.json composer-polyfill.json
+mv LICENSE LICENSE-polyfill
+
+mv Traits-%{tr_commit}/src src2
+mv Traits-%{tr_commit}/composer.json composer-traits.json
+mv Traits-%{tr_commit}/LICENSE LICENSE-traits
cat << 'EOF' | tee src/autoload.php
<?php
/* autoloader for %{name} */
-\Fedora\Autoloader\Autoload::addPsr4('PhpCsFixer\\AccessibleObject\\', __DIR__);
-\Fedora\Autoloader\Dependencies::required([
- __DIR__ . '/aliases.php',
-]);
+require_once '%{php_home}/Fedora/Autoloader/autoload.php';
+if (!class_exists('PHPUnit\\Framework\\TestCase')) { // Call outside of phpunit command
+ \Fedora\Autoloader\Dependencies::required([
+ [
+ '%{php_home}/PHPUnit7/autoload.php',
+ '%{php_home}/PHPUnit6/autoload.php',
+ '%{php_home}/PHPUnit/Autoload.php',
+ ],
+ ]);
+}
+\Fedora\Autoloader\Autoload::addPsr4('PHPUnitGoodPractices\\Polyfill\\', __DIR__);
+\Fedora\Autoloader\Autoload::addPsr4('PHPUnitGoodPractices\\Traits\\', dirname(__DIR__) . '/Traits');
+require_once __DIR__ . '/aliases.php';
EOF
@@ -83,17 +111,25 @@ EOF
%install
: Library
-mkdir -p %{buildroot}%{php_home}/%{ns_vendor}
-cp -pr src %{buildroot}%{php_home}/%{ns_vendor}/%{ns_project}
+mkdir -p %{buildroot}%{php_home}/%{ns_vendor}
+cp -pr src %{buildroot}%{php_home}/%{ns_vendor}/%{ns_project}
+cp -pr src2 %{buildroot}%{php_home}/%{ns_vendor}/Traits
%check
%if %{with_tests}
: Minimal check for our autoloader
php -r '
-require "%{php_home}/PHPUnit/Autoload.php";
require "%{buildroot}%{php_home}/%{ns_vendor}/%{ns_project}/autoload.php";
var_dump(PHPUnit\Runner\Version::id());
+if (!trait_exists("PHPUnitGoodPractices\\Polyfill\\PolyfillTrait")) {
+ echo("PolyfillTrait missing\n");
+ exit(1);
+}
+if (!class_exists("PHPUnitGoodPractices\\Traits\\PHPUnitVersionRetriever")) {
+ echo("PHPUnitVersionRetriever missing\n");
+ exit(1);
+}
'
%else
: Test suite disabled
@@ -102,13 +138,19 @@ var_dump(PHPUnit\Runner\Version::id());
%files
%{!?_licensedir:%global license %%doc}
-%license LICENSE
-%doc composer.json
+%license LICENSE-*
+%doc composer-*.json
%dir %{php_home}/%{ns_vendor}
%{php_home}/%{ns_vendor}/%{ns_project}
+ %{php_home}/%{ns_vendor}/Traits
%changelog
+* Mon Jun 25 2018 Remi Collet <remi@remirepo.net> - 1.1.0-2
+- add mandatory dependency on one PHPUnit version
+- add phpunitgoodpractices/traits 1.5.1
+- fix autoloader #1594663
+
* Mon Jun 11 2018 Remi Collet <remi@remirepo.net> - 1.1.0-1
- update to 1.1.0 (no change)
- add LICENSE file