diff options
-rw-r--r-- | .gitignore | 7 | ||||
-rw-r--r-- | composer.json | 31 | ||||
-rw-r--r-- | php-gitter.spec | 112 |
3 files changed, 104 insertions, 46 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1ab5c4f --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +package-*.xml +*.tgz +*.tar.gz +*.tar.xz +*.tar.xz.asc +*.src.rpm +*/*rpm diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..f9a77d3 --- /dev/null +++ b/composer.json @@ -0,0 +1,31 @@ +{ + "name": "klaussilveira/gitter", + "description": "Gitter allows you to interact in an object oriented manner with Git repositories.", + "keywords": ["git", "vcs"], + "homepage": "https://github.com/klaussilveira/gitter", + "type": "library", + "license": "BSD-2-Clause", + "authors": [ + { + "name": "Klaus Silveira", + "email": "klaussilveira@php.net", + "homepage": "http://www.klaussilveira.com/", + "role": "Developer" + } + ], + "require": { + "php": ">=5.3.0", + "symfony/process": ">=2.2" + }, + "require-dev": { + "symfony/filesystem": ">=2.2", + "phpunit/phpunit": ">=3.7.1", + "mockery/mockery": "0.9.1" + }, + "minimum-stability": "stable", + "autoload": { + "psr-0": { + "Gitter": "lib/" + } + } +} diff --git a/php-gitter.spec b/php-gitter.spec index 604087e..984b575 100644 --- a/php-gitter.spec +++ b/php-gitter.spec @@ -1,8 +1,8 @@ # remirepo spec file for php-gitter, from Fedora: # -# RPM spec file for php-gitter +# Fedora spec file for php-gitter # -# Copyright (c) 2014-2015 Shawn Iwinski <shawn.iwinski@gmail.com> +# Copyright (c) 2014-2017 Shawn Iwinski <shawn.iwinski@gmail.com> # # License: MIT # http://opensource.org/licenses/MIT @@ -19,9 +19,16 @@ %global composer_project gitter # "php": ">=5.3.0" -%global php_min_ver 5.3.0 -# "symfony/*": ">=2.2" -%global symfony_min_ver 2.2 +%global php_min_ver 5.3.0 +# "symfony/process": ">=2.2" +# "symfony/filesystem": ">=2.2" +# NOTE: Min version not 2.2 because autoloader required +%global symfony_min_ver 2.7.1 +%global symfony_max_ver 3.0 +# "mockery/mockery": "0.9.1" +%global mockery_min_ver 0.9.1 +%global mockery_max_ver 1.0 + # Build using "--without tests" to disable tests %global with_tests 0%{!?_without_tests:1} @@ -30,7 +37,7 @@ Name: php-%{composer_project} Version: %{github_version} -Release: 5%{?github_release}%{?dist} +Release: 8%{?github_release}%{?dist} Summary: Object oriented interaction with Git repositories Group: Development/Libraries @@ -42,37 +49,45 @@ Source0: %{url}/archive/%{github_commit}/%{name}-%{github_version}-%{githu # https://github.com/klaussilveira/gitter/pull/47 Patch0: %{name}-pr47.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch # Tests %if %{with_tests} BuildRequires: git ## composer.json -BuildRequires: %{_bindir}/phpunit -BuildRequires: php(language) >= %{php_min_ver} +BuildRequires: php(language) >= %{php_min_ver} +%if 0 +BuildRequires: php-deepend-Mockery < %{mockery_max_ver} +BuildRequires: php-deepend-Mockery >= %{mockery_min_ver} +%else +BuildRequires: php-composer(mockery/mockery) < %{mockery_max_ver} +BuildRequires: php-composer(mockery/mockery) >= %{mockery_min_ver} +%endif +BuildRequires: php-composer(phpunit/phpunit) +BuildRequires: php-composer(symfony/filesystem) < %{symfony_max_ver} BuildRequires: php-composer(symfony/filesystem) >= %{symfony_min_ver} -BuildRequires: php-composer(symfony/process) >= %{symfony_min_ver} -BuildRequires: php-deepend-Mockery +BuildRequires: php-composer(symfony/process) < %{symfony_max_ver} +BuildRequires: php-composer(symfony/process) >= %{symfony_min_ver} ## phpcompatinfo (computed from version 0.3.0) BuildRequires: php-date BuildRequires: php-pcre BuildRequires: php-reflection BuildRequires: php-spl ## Autoloader -BuildRequires: php-composer(symfony/class-loader) +BuildRequires: php-composer(fedora/autoloader) %endif Requires: git # composer.json -Requires: php(language) >= %{php_min_ver} +Requires: php(language) >= %{php_min_ver} Requires: php-composer(symfony/process) >= %{symfony_min_ver} +Requires: php-composer(symfony/process) < %{symfony_max_ver} # phpcompatinfo (computed from version 0.3.0) Requires: php-date Requires: php-pcre Requires: php-reflection Requires: php-spl # Autoloader -Requires: php-composer(symfony/class-loader) +Requires: php-composer(fedora/autoloader) # Standard "php-{COMPOSER_VENDOR}-{COMPOSER_PROJECT}" naming Provides: php-%{composer_vendor}-%{composer_project} = %{version}-%{release} @@ -88,6 +103,8 @@ Most commands are sent to the system's git command, parsed and then interpreted by Gitter. Everything is transparent to you, so you don't have to worry about a thing. +Autoloader: %{phpdir}/Gitter/autoload.php + %prep %setup -qn %{github_name}-%{github_commit} @@ -96,65 +113,63 @@ thing. : https://github.com/klaussilveira/gitter/pull/47 %patch0 -p1 + +%build + : Create autoloader cat <<'AUTOLOAD' | tee lib/Gitter/autoload.php <?php /** * Autoloader for %{name} and its' dependencies - * - * Created by %{name}-%{version}-%{release} - * - * @return \Symfony\Component\ClassLoader\ClassLoader + * (created by %{name}-%{version}-%{release}). */ +require_once '%{phpdir}/Fedora/Autoloader/autoload.php'; -if (!isset($fedoraClassLoader) || !($fedoraClassLoader instanceof \Symfony\Component\ClassLoader\ClassLoader)) { - if (!class_exists('Symfony\\Component\\ClassLoader\\ClassLoader', false)) { - require_once '%{phpdir}/Symfony/Component/ClassLoader/ClassLoader.php'; - } - - $fedoraClassLoader = new \Symfony\Component\ClassLoader\ClassLoader(); - $fedoraClassLoader->register(); -} - -$fedoraClassLoader->addPrefix('Gitter\\', dirname(__DIR__)); - -// Not all dependency autoloaders exist or are in every dist yet so fallback -// to using include path for dependencies for now -$fedoraClassLoader->setUseIncludePath(true); +\Fedora\Autoloader\Autoload::addPsr4('Gitter\\', __DIR__); -return $fedoraClassLoader; +\Fedora\Autoloader\Dependencies::required(array( + '%{phpdir}/Symfony/Component/Process/autoload.php', +)); AUTOLOAD -%build -# Empty build section, nothing required - - %install -rm -rf %{buildroot} mkdir -p %{buildroot}/%{phpdir} cp -rp lib/* %{buildroot}/%{phpdir}/ %check %if %{with_tests} +: Create tests bootstrap +cat <<'BOOTSTRAP' | tee bootstrap.php +<?php +require_once '%{buildroot}%{phpdir}/Gitter/autoload.php'; + +\Fedora\Autoloader\Dependencies::required(array( + '%{phpdir}/Mockery/autoload.php', + '%{phpdir}/Symfony/Component/Filesystem/autoload.php', +)); +BOOTSTRAP + : Always run all tests sed '/stopOnFailure/d' phpunit.xml.dist > phpunit.xml -: Run tests -%{_bindir}/phpunit --verbose \ - --bootstrap %{buildroot}/%{phpdir}/Gitter/autoload.php +: Upstream tests +RETURN_CODE=0 +PHPUNIT=$(which phpunit) +for PHP_EXEC in "" %{?rhel:php54 php55} php56 php70 php71 php72; do + if [ -z "$PHP_EXEC" ] || which $PHP_EXEC; then + $PHP_EXEC $PHPUNIT --verbose --bootstrap bootstrap.php \ + || RETURN_CODE=1 + fi +done +exit $RETURN_CODE %else : Tests skipped %endif -%clean -rm -rf %{buildroot} - - %files -%defattr(-,root,root,-) %{!?_licensedir:%global license %%doc} %license LICENSE %doc *.md @@ -163,6 +178,11 @@ rm -rf %{buildroot} %changelog +* Sun May 14 2017 Shawn Iwinski <shawn.iwinski@gmail.com> - 0.3.0-8 +- Switch autoloader to php-composer(fedora/autoloader) +- Add max versions to build dependencies +- Test with SCLs if available + * Sat Jul 11 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 0.3.0-5 - Use full require paths in autoloader |