perl-Specio/perl-Specio.spec

179 lines
6.2 KiB
RPMSpec
Raw Normal View History

Name: perl-Specio
Version: 0.30
Release: 1%{?dist}
Summary: Type constraints and coercions for Perl
License: Artistic 2.0
URL: http://search.cpan.org/dist/Specio/
Source0: http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Specio-%{version}.tar.gz
BuildArch: noarch
# Module Build
BuildRequires: coreutils
BuildRequires: make
BuildRequires: perl
BuildRequires: perl-generators
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76
# Module Runtime
BuildRequires: perl(B)
BuildRequires: perl(Carp)
BuildRequires: perl(Devel::StackTrace)
BuildRequires: perl(Eval::Closure)
BuildRequires: perl(Exporter)
BuildRequires: perl(IO::File)
BuildRequires: perl(List::Util) >= 1.33
BuildRequires: perl(MRO::Compat)
BuildRequires: perl(overload)
BuildRequires: perl(parent)
BuildRequires: perl(re)
BuildRequires: perl(Role::Tiny) >= 1.003003
BuildRequires: perl(Role::Tiny::With)
BuildRequires: perl(Scalar::Util)
BuildRequires: perl(Storable)
BuildRequires: perl(strict)
BuildRequires: perl(Test::Fatal)
BuildRequires: perl(Test::More) >= 0.96
BuildRequires: perl(version) >= 0.83
BuildRequires: perl(warnings)
# Test Suite
BuildRequires: perl(File::Spec)
BuildRequires: perl(lib)
BuildRequires: perl(open)
BuildRequires: perl(Test::Needs)
BuildRequires: perl(utf8)
# Optional Tests
BuildRequires: perl(CPAN::Meta) >= 2.120900
BuildRequires: perl(CPAN::Meta::Prereqs)
BuildRequires: perl(Moo)
BuildRequires: perl(Moose) >= 2.1207
BuildRequires: perl(Mouse)
BuildRequires: perl(namespace::autoclean)
# Dependencies
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
# Avoid provides for private packages
%global __provides_exclude ^perl\\(_T::.*\\)
%description
The Specio distribution provides classes for representing type constraints
and coercion, along with syntax sugar for declaring them.
Note that this is not a proper type system for Perl. Nothing in this
distribution will magically make the Perl interpreter start checking a value's
type on assignment to a variable. In fact, there's no built-in way to apply a
type to a variable at all.
Instead, you can explicitly check a value against a type, and optionally coerce
values to that type.
%package -n perl-Test-Specio
Summary: Test helpers for Specio
License: Artistic 2.0
Requires: %{name} = %{version}-%{release}
%description -n perl-Test-Specio
This package provides some helper functions and variables for testing Specio
types.
%prep
%setup -q -n Specio-%{version}
%build
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
%{_fixperms} %{buildroot}
%check
make test
%files
%license LICENSE
%doc Changes CONTRIBUTING.md README.md TODO.pod
%{perl_vendorlib}/Specio.pm
%{perl_vendorlib}/Specio/
%{_mandir}/man3/Specio.3*
%{_mandir}/man3/Specio::Coercion.3*
%{_mandir}/man3/Specio::Constraint::AnyCan.3*
%{_mandir}/man3/Specio::Constraint::AnyDoes.3*
%{_mandir}/man3/Specio::Constraint::AnyIsa.3*
%{_mandir}/man3/Specio::Constraint::Enum.3*
%{_mandir}/man3/Specio::Constraint::Intersection.3*
%{_mandir}/man3/Specio::Constraint::ObjectCan.3*
%{_mandir}/man3/Specio::Constraint::ObjectDoes.3*
%{_mandir}/man3/Specio::Constraint::ObjectIsa.3*
%{_mandir}/man3/Specio::Constraint::Parameterizable.3*
%{_mandir}/man3/Specio::Constraint::Parameterized.3*
%{_mandir}/man3/Specio::Constraint::Role::CanType.3*
%{_mandir}/man3/Specio::Constraint::Role::DoesType.3*
%{_mandir}/man3/Specio::Constraint::Role::Interface.3*
%{_mandir}/man3/Specio::Constraint::Role::IsaType.3*
%{_mandir}/man3/Specio::Constraint::Simple.3*
%{_mandir}/man3/Specio::Constraint::Union.3*
%{_mandir}/man3/Specio::Declare.3*
%{_mandir}/man3/Specio::DeclaredAt.3*
%{_mandir}/man3/Specio::Exception.3*
%{_mandir}/man3/Specio::Exporter.3*
%{_mandir}/man3/Specio::Helpers.3*
%{_mandir}/man3/Specio::Library::Builtins.3*
%{_mandir}/man3/Specio::Library::Numeric.3*
%{_mandir}/man3/Specio::Library::Perl.3*
%{_mandir}/man3/Specio::Library::String.3*
%{_mandir}/man3/Specio::OO.3*
%{_mandir}/man3/Specio::PartialDump.3*
%{_mandir}/man3/Specio::Registry.3*
%{_mandir}/man3/Specio::Role::Inlinable.3*
%{_mandir}/man3/Specio::TypeChecks.3*
# Exclude documentation that shouldn't have been installed like this
%exclude %{perl_vendorlib}/TODO.pod
%exclude %{_mandir}/man3/TODO.3*
%files -n perl-Test-Specio
%{perl_vendorlib}/Test/
%{_mandir}/man3/Test::Specio.3*
%changelog
* Sun Oct 16 2016 Paul Howarth <paul@city-fan.org> - 0.30-1
- Update to 0.30
- Fix a bug with the Sub::Quoted sub returned by $type->coercion_sub; if a
type had more than one coercion, the generated sub could end up coercing
the value to undef some of the time and, depending on hash key ordering,
this could end up being a heisenbug that only occured some of the time
* Mon Oct 10 2016 Paul Howarth <paul@city-fan.org> - 0.29-1
- Update to 0.29
- Document Specio::PartialDump because you may want to use it as part of the
failure message generation code for a type
* Mon Oct 3 2016 Paul Howarth <paul@city-fan.org> - 0.28-1
- Update to 0.28
- Added a Test::Specio module to provide helpers for testing Specio libraries
- Fixed another bug with a subtype of special types and inlining
- Introduce sub-package perl-Test-Specio to avoid dependencies on Test::Fatal
and Test::More in main package
* Sun Oct 2 2016 Paul Howarth <paul@city-fan.org> - 0.27-1
- Update to 0.27
- Cloning a type with coercions defined on it would cause an exception
- Creating a subtype of a special type created by *_isa_type, *_can_type, or
*_does_type, or enum would die when trying to inline type constraint
- Removed the never-documented Any type
- Added documentation for each type in Specio::Library::Builtins
* Mon Sep 26 2016 Paul Howarth <paul@city-fan.org> - 0.26-1
- Update to 0.26
- Require Role::Tiny 1.003003, which should fix some test failures
* Mon Sep 5 2016 Paul Howarth <paul@city-fan.org> - 0.25-1
- Update to 0.25
- Calling {any,object}_{isa,does}_type repeatedly in a package with the same
class or role name would die; these subs are now special-cased to simply
return an existing type for the given name when they receive a single
argument (the name of the class or role)
* Fri Jul 1 2016 Paul Howarth <paul@city-fan.org> - 0.24-2
- Sanitize for Fedora submission
* Fri Jul 1 2016 Paul Howarth <paul@city-fan.org> - 0.24-1
- Initial RPM version