import from review #1751947
This commit is contained in:
parent
4062eda4d8
commit
9f0cf6fb76
4 changed files with 274 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
/php-phpdocumentor-type-resolver1-1.0.1-2e32a6d48972b2c1976ed5d8967145b6cec4a4a9.tar.gz
|
||||
71
makesrc.sh
Executable file
71
makesrc.sh
Executable file
|
|
@ -0,0 +1,71 @@
|
|||
#/bin/sh
|
||||
|
||||
GIT=`which git`
|
||||
RPM=`which rpm`
|
||||
|
||||
if [ -z "$GIT" ]
|
||||
then
|
||||
echo "ERROR: 'git' command not found" 1>&2
|
||||
exit 1
|
||||
elif [ -z "$RPM" ]
|
||||
then
|
||||
echo "ERROR: 'rpm' command not found" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
function print {
|
||||
echo -e "\e[0;33m>>>>> ${1}\e[0m"
|
||||
}
|
||||
|
||||
if [ -x "$1" ]
|
||||
then
|
||||
SPEC=$1
|
||||
else
|
||||
SPEC=`ls *.spec | head -1`
|
||||
fi
|
||||
|
||||
NAME=`echo $SPEC | sed 's#\.spec##'`
|
||||
VERSION=`egrep '%global\s*github_version' $SPEC | awk '{print $3}'`
|
||||
|
||||
print "SPEC = $SPEC"
|
||||
print "NAME = $NAME"
|
||||
|
||||
GIT_OWNER=`egrep '%global\s*github_owner' $SPEC | awk '{print $3}'`
|
||||
GIT_NAME=`egrep '%global\s*github_name' $SPEC | awk '{print $3}'`
|
||||
GIT_COMMIT=`egrep '%global\s*github_commit' $SPEC | awk '{print $3}'`
|
||||
GIT_REPO=https://github.com/${GIT_OWNER}/${GIT_NAME}
|
||||
GIT_DIR=`echo $GIT_REPO | sed 's#.*/##'`
|
||||
|
||||
print "GIT_OWNER = $GIT_OWNER"
|
||||
print "GIT_NAME = $GIT_NAME"
|
||||
print "GIT_COMMIT = $GIT_COMMIT"
|
||||
print "GIT_REPO = $GIT_REPO"
|
||||
print "GIT_DIR = $GIT_DIR"
|
||||
|
||||
TEMP_DIR=$(mktemp --dir)
|
||||
TAR_FILE=$PWD/${NAME}-${VERSION}-${GIT_COMMIT}.tar.gz
|
||||
CMP_FILE=$PWD/composer.json
|
||||
|
||||
pushd $TEMP_DIR
|
||||
print "Cloning git repo..."
|
||||
$GIT clone $GIT_REPO
|
||||
|
||||
pushd $GIT_DIR
|
||||
print "Checking out commit..."
|
||||
$GIT checkout $GIT_COMMIT
|
||||
cp composer.json $CMP_FILE
|
||||
popd
|
||||
|
||||
TAR_DIR=${GIT_NAME}-${GIT_COMMIT}
|
||||
print "TAR_DIR = $TAR_DIR"
|
||||
|
||||
mv $GIT_DIR $TAR_DIR
|
||||
|
||||
print "TAR_FILE = $TAR_FILE"
|
||||
|
||||
[ -e $TAR_FILE ] && rm -f $TAR_FILE
|
||||
tar --exclude-vcs -czf $TAR_FILE $TAR_DIR
|
||||
chmod 0644 $TAR_FILE
|
||||
popd
|
||||
|
||||
rm -rf $TEMP_DIR
|
||||
201
php-phpdocumentor-type-resolver1.spec
Normal file
201
php-phpdocumentor-type-resolver1.spec
Normal file
|
|
@ -0,0 +1,201 @@
|
|||
# remirepo/fedora spec file for php-phpdocumentor-type-resolver1
|
||||
#
|
||||
# Copyright (c) 2017-2019 Remi Collet, Shawn Iwinski
|
||||
#
|
||||
# License: MIT
|
||||
# http://opensource.org/licenses/MIT
|
||||
#
|
||||
# Please preserve changelog entries
|
||||
#
|
||||
|
||||
%global github_owner phpDocumentor
|
||||
%global github_name TypeResolver
|
||||
%global github_version 1.0.1
|
||||
%global github_commit 2e32a6d48972b2c1976ed5d8967145b6cec4a4a9
|
||||
|
||||
%global composer_vendor phpdocumentor
|
||||
%global composer_project type-resolver
|
||||
|
||||
%global major 1
|
||||
# Install in reflection-common tree
|
||||
%global ns_major 2
|
||||
|
||||
# "php": "^7.1"
|
||||
%global php_min_ver 7.1
|
||||
# "mockery/mockery": "^1"
|
||||
%global mockery_min_ver 1
|
||||
%global mockery_max_ver 2
|
||||
# "phpdocumentor/reflection-common": "^2.0"
|
||||
%global reflection_common_min_ver 2.0
|
||||
%global reflection_common_max_ver 3
|
||||
|
||||
# Build using "--without tests" to disable tests
|
||||
%global with_tests 0%{!?_without_tests:1}
|
||||
|
||||
%{!?phpdir: %global phpdir %{_datadir}/php}
|
||||
|
||||
Name: php-%{composer_vendor}-%{composer_project}%{major}
|
||||
Version: %{github_version}
|
||||
Release: 1%{?github_release}%{?dist}
|
||||
Summary: A PSR-5 based resolver of Class names, Types and Structural Element Names
|
||||
|
||||
Group: Development/Libraries
|
||||
License: MIT
|
||||
URL: https://github.com/%{github_owner}/%{github_name}
|
||||
|
||||
# GitHub export does not include tests.
|
||||
# Run makesrc.sh to create full source.
|
||||
Source0: %{name}-%{github_version}-%{github_commit}.tar.gz
|
||||
Source1: makesrc.sh
|
||||
|
||||
BuildArch: noarch
|
||||
# Tests
|
||||
%if %{with_tests}
|
||||
## composer.json
|
||||
BuildRequires: php(language) >= %{php_min_ver}
|
||||
BuildRequires: phpunit7
|
||||
# remirepo:1
|
||||
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
|
||||
BuildRequires: (php-composer(phpdocumentor/reflection-common) >= %{reflection_common_min_ver} with php-composer(phpdocumentor/reflection-common) < %{reflection_common_max_ver})
|
||||
BuildRequires: (php-composer(mockery/mockery) >= %{mockery_min_ver} with php-composer(mockery/mockery) < %{mockery_max_ver})
|
||||
# remirepo:4
|
||||
%else
|
||||
BuildRequires: php-phpdocumentor-reflection-common2 >= %{reflection_common_min_ver}
|
||||
BuildRequires: php-mockery >= %{mockery_min_ver}
|
||||
%endif
|
||||
## phpcompatinfo (computed from version 1.0.0)
|
||||
BuildRequires: php-reflection
|
||||
BuildRequires: php-pcre
|
||||
BuildRequires: php-spl
|
||||
BuildRequires: php-tokenizer
|
||||
## Autoloader
|
||||
BuildRequires: php-fedora-autoloader-devel
|
||||
%endif
|
||||
|
||||
# composer.json
|
||||
Requires: php(language) >= %{php_min_ver}
|
||||
# remirepo:1
|
||||
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
|
||||
Requires: (php-composer(phpdocumentor/reflection-common) >= %{reflection_common_min_ver} with php-composer(phpdocumentor/reflection-common) < %{reflection_common_max_ver})
|
||||
# remirepo:3
|
||||
%else
|
||||
Requires: php-phpdocumentor-reflection-common2 >= %{reflection_common_min_ver}
|
||||
%endif
|
||||
# phpcompatinfo (computed from version 1.0.0)
|
||||
Requires: php-pcre
|
||||
Requires: php-spl
|
||||
Requires: php-tokenizer
|
||||
# Autoloader
|
||||
Requires: php-composer(fedora/autoloader)
|
||||
|
||||
# Composer
|
||||
Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version}
|
||||
|
||||
%description
|
||||
The specification on types in DocBlocks (PSR-5) describes various keywords
|
||||
and special constructs but also how to statically resolve the partial name
|
||||
of a Class into a Fully Qualified Class Name (FQCN).
|
||||
|
||||
PSR-5 also introduces an additional way to describe deeper elements than
|
||||
Classes, Interfaces and Traits called the Fully Qualified Structural Element
|
||||
Name (FQSEN). Using this it is possible to refer to methods, properties and
|
||||
class constants but also functions and global constants.
|
||||
|
||||
This package provides two Resolvers that are capable of:
|
||||
1. Returning a series of Value Object for given expression while resolving any
|
||||
partial class names, and
|
||||
2. Returning an FQSEN object after resolving any partial Structural Element
|
||||
Names into Fully Qualified Structural Element names.
|
||||
|
||||
Autoloader: %{phpdir}/phpDocumentor/Reflection%{ns_major}/autoload-type-resolver.php
|
||||
|
||||
|
||||
%prep
|
||||
%setup -qn %{github_name}-%{github_commit}
|
||||
|
||||
: Update examples autoload require
|
||||
sed "s#.*require.*vendor.*/autoload.php.*#require_once '%{phpdir}/phpDocumentor/Reflection%{ns_major}/autoload-type-resolver.php';#" \
|
||||
-i examples/*
|
||||
|
||||
|
||||
%build
|
||||
: Create autoloader
|
||||
%{_bindir}/phpab --template fedora --output src/autoload-type-resolver.php src
|
||||
cat <<'AUTOLOAD' | tee -a src/autoload-type-resolver.php
|
||||
|
||||
\Fedora\Autoloader\Dependencies::required([
|
||||
'%{phpdir}/phpDocumentor/Reflection%{ns_major}/autoload-common.php',
|
||||
]);
|
||||
AUTOLOAD
|
||||
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}%{phpdir}/phpDocumentor/Reflection%{ns_major}
|
||||
cp -rp src/* %{buildroot}%{phpdir}/phpDocumentor/Reflection%{ns_major}/
|
||||
|
||||
|
||||
%check
|
||||
%if %{with_tests}
|
||||
: Create tests bootstrap
|
||||
cat <<'BOOTSTRAP' | tee bootstrap.php
|
||||
<?php
|
||||
require '%{buildroot}%{phpdir}/phpDocumentor/Reflection%{ns_major}/autoload-type-resolver.php';
|
||||
|
||||
\Fedora\Autoloader\Autoload::addPsr4('phpDocumentor\\Reflection\\', __DIR__.'/tests/unit');
|
||||
|
||||
\Fedora\Autoloader\Dependencies::required([
|
||||
'%{phpdir}/Mockery1/autoload.php',
|
||||
]);
|
||||
BOOTSTRAP
|
||||
|
||||
: Adjust listener path
|
||||
sed 's#vendor/mockery/mockery/library/Mockery#%{phpdir}/Mockery1#' phpunit.xml.dist > phpunit.xml
|
||||
|
||||
: Upstream tests
|
||||
RETURN_CODE=0
|
||||
PHPUNIT=$(which phpunit7)
|
||||
for PHP_EXEC in php php71 php72 php73 php74; do
|
||||
if [ "php" == "$PHP_EXEC" ] || which $PHP_EXEC; then
|
||||
$PHP_EXEC -d auto_prepend_file=$PWD/bootstrap.php \
|
||||
$PHPUNIT --verbose --bootstrap bootstrap.php \
|
||||
|| RETURN_CODE=1
|
||||
fi
|
||||
done
|
||||
exit $RETURN_CODE
|
||||
%else
|
||||
: Tests skipped
|
||||
%endif
|
||||
|
||||
|
||||
%files
|
||||
# remirepo:1
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license LICENSE
|
||||
%doc *.md
|
||||
%doc composer.json
|
||||
%doc examples
|
||||
%{phpdir}/phpDocumentor/Reflection%{ns_major}/autoload-type-resolver.php
|
||||
%{phpdir}/phpDocumentor/Reflection%{ns_major}/FqsenResolver.php
|
||||
%{phpdir}/phpDocumentor/Reflection%{ns_major}/Type.php
|
||||
%{phpdir}/phpDocumentor/Reflection%{ns_major}/TypeResolver.php
|
||||
%{phpdir}/phpDocumentor/Reflection%{ns_major}/Types
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri Sep 13 2019 Remi Collet <remi@remirepo.net> - 1.0.1-1
|
||||
- update to 1.0.1
|
||||
- rename to php-phpdocumentor-type-resolver1
|
||||
- move to /usr/share/php/phpDocumentor/Reflection2
|
||||
- raise dependency on PHP 7.1
|
||||
- raise dependency on reflection-common 2.0
|
||||
- use phpunit7
|
||||
|
||||
* Fri Dec 7 2018 Remi Collet <remi@remirepo.net> - 0.4.0-5
|
||||
- use range dependencies
|
||||
|
||||
* Mon Jul 17 2017 Shawn Iwinski <shawn@iwin.ski> - 0.4.0-1
|
||||
- Update to 0.4.0 (RHBZ #1460503)
|
||||
- Add "get source" script because upstream attributes removed tests from snapshot
|
||||
|
||||
* Sat Mar 11 2017 Shawn Iwinski <shawn@iwin.ski> - 0.2.1-1
|
||||
- Initial package
|
||||
1
sources
Normal file
1
sources
Normal file
|
|
@ -0,0 +1 @@
|
|||
SHA512 (php-phpdocumentor-type-resolver1-1.0.1-2e32a6d48972b2c1976ed5d8967145b6cec4a4a9.tar.gz) = 41b38eea6086916aa31c25f1b0d53b2b33206151785ef904b5bb37afc6bad0c7445261fcf3916b175cb80d3907c45ca06b2161e342f4936f2d0578406ed8f50f
|
||||
Loading…
Add table
Add a link
Reference in a new issue