123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329 |
- # Run optional test
- %bcond_with perl_Specio_enables_optional_test
- Name: perl-Specio
- Version: 0.43
- Release: 3%{?_dist_release}
- Summary: Type constraints and coercions for Perl
- License: Artistic 2.0
- URL: https://metacpan.org/release/Specio
- Source0: https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Specio-%{version}.tar.gz
- Vendor: Project Vine
- Distribution: Vine Linux
- BuildArch: noarch
- # Module Build
- BuildRequires: coreutils
- BuildRequires: make
- BuildRequires: perl >= 2:5.26.2
- BuildRequires: perl(ExtUtils::MakeMaker)
- # 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)
- BuildRequires: perl(Module::Runtime)
- BuildRequires: perl(MRO::Compat)
- BuildRequires: perl(overload)
- BuildRequires: perl(parent)
- BuildRequires: perl(re)
- BuildRequires: perl(Ref::Util) >= 0.112
- BuildRequires: perl(Role::Tiny) >= 1.003003
- BuildRequires: perl(Role::Tiny::With)
- BuildRequires: perl(Scalar::Util)
- BuildRequires: perl(Storable)
- BuildRequires: perl(strict)
- BuildRequires: perl(Sub::Quote)
- BuildRequires: perl(Sub::Util)
- BuildRequires: perl(Test::Fatal)
- BuildRequires: perl(Test::More)
- BuildRequires: perl(Try::Tiny)
- BuildRequires: perl(version)
- BuildRequires: perl(warnings)
- # Test Suite
- BuildRequires: perl(File::Spec)
- BuildRequires: perl(lib)
- BuildRequires: perl(open)
- BuildRequires: perl(Test::Needs)
- BuildRequires: perl(utf8)
- %if %{with perl_Specio_enables_optional_test}
- # Optional Tests
- BuildRequires: perl(CPAN::Meta)
- BuildRequires: perl(CPAN::Meta::Prereqs)
- BuildRequires: perl(Moo)
- %if !%{defined perl_bootstrap}
- # Break cycle: perl-Moose → perl-DateTime → perl-Specio
- BuildRequires: perl(Moose)
- # Break cycle: perl-Mouse → perl-Moose → perl-DateTime → perl-Specio
- BuildRequires: perl(Mouse)
- %endif
- BuildRequires: perl(namespace::autoclean)
- %endif
- # Dependencies
- Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
- Requires: perl(Ref::Util) >= 0.112
- Requires: perl(Sub::Util) >= 1.40
- # 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} -c %{buildroot}
- %check
- make test
- %files
- %license LICENSE
- %doc Changes CODE_OF_CONDUCT.md CONTRIBUTING.md README.md TODO.md
- %{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::Structurable.3*
- %{_mandir}/man3/Specio::Constraint::Structured.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::Library::Structured.3*
- %{_mandir}/man3/Specio::Library::Structured::Dict.3*
- %{_mandir}/man3/Specio::Library::Structured::Map.3*
- %{_mandir}/man3/Specio::Library::Structured::Tuple.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::Subs.3*
- %{_mandir}/man3/Specio::TypeChecks.3*
- %files -n perl-Test-Specio
- %{perl_vendorlib}/Test/
- %{_mandir}/man3/Test::Specio.3*
- %changelog
- * Sat May 18 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net>- 0.43-3
- - initial build for Vine Linux.
- * Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.43-2
- - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
- * Sun Oct 28 2018 Paul Howarth <paul@city-fan.org> - 0.43-1
- - Update to 0.43
- - Optimized compile-time operations to make Specio itself quicker to load;
- Specio's load time is a non-trivial part of the load time of DateTime (and
- presumably other things that use it)
- - Based on https://github.com/houseabsolute/DateTime.pm/issues/85
- - Package new CODE_OF_CONDUCT.md file
- * Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.42-5
- - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
- * Sun Jul 01 2018 Jitka Plesnikova <jplesnik@redhat.com> - 0.42-4
- - Perl 5.28 re-rebuild of bootstrapped packages
- * Fri Jun 29 2018 Jitka Plesnikova <jplesnik@redhat.com> - 0.42-3
- - Perl 5.28 rebuild
- * Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.42-2
- - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
- * Mon Nov 6 2017 Paul Howarth <paul@city-fan.org> - 0.42-1
- - Update to 0.42
- - Fixed checks for whether a class is loaded in light of upcoming
- optimization in Perl 5.28 (GH#12)
- - The Perl library claimed it provided types named LaxVersionStr and
- StrictVersionStr but they were really named LaxVersion and StrictVersion;
- the names have now been fixed to match the documentation, so they are
- LaxVersionStr and StrictVersionStr
- * Fri Aug 4 2017 Paul Howarth <paul@city-fan.org> - 0.40-1
- - Update to 0.40
- - Fixed more bugs with {any,object}_{can,does,isa}_type
- - When passed a glob (not a globref) they would die in their type check
- - On Perl 5.16 or earlier, passing a number to an any_* type would also die
- - Fixed subification overloading: if Sub::Quote was loaded, this would be
- used, but any environment variables needed for the closure would not be
- included, which broke enums, among other things
- * Thu Aug 3 2017 Paul Howarth <paul@city-fan.org> - 0.39-1
- - Update to 0.39
- - Many bug fixes and improvements to the types created by
- {any,object}_{can,does,isa}_type; in some cases, an invalid value could
- cause an exception in type check itself, and in other cases, a value that
- failed a type check would cause an exception when generating a message
- describing the failure
- - The messages describing a failure for all of these types have been improved
- - You can now create anonymous *_does and *_isa types using the exports from
- Specio::Declare
- * Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.38-2
- - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
- * Sat Jul 1 2017 Paul Howarth <paul@city-fan.org> - 0.38-1
- - Update to 0.38
- - Simplify checks for overloading to not call overload::Overloaded(); just
- checking the return value of overload::Method() is sufficient
- * Wed Jun 07 2017 Jitka Plesnikova <jplesnik@redhat.com> - 0.37-3
- - Perl 5.26 re-rebuild of bootstrapped packages
- * Mon Jun 05 2017 Jitka Plesnikova <jplesnik@redhat.com> - 0.37-2
- - Perl 5.26 rebuild
- * Tue May 9 2017 Paul Howarth <paul@city-fan.org> - 0.37-1
- - Update to 0.37
- - Possible fix for very weird failures seen under threaded Perls with some
- modules that use Specio
- * Mon Feb 20 2017 Paul Howarth <paul@city-fan.org> - 0.36-1
- - Update to 0.36
- - Inlined coercions would attempt to coerce for every type that matched the
- value given, instead of stopping after the first type (GH#11)
- - Inlined coercions did not include the inline environment variables needed
- by the type from which the coercion was being performed (GH#8)
- - When you use the same type repeatedly as coderef (for example, as a
- constraint with Moo), it will only generate its subified form once, rather
- than regenerating it each time it is de-referenced
- - Added an API to Specio::Subs to allow you to combine type libraries and
- helper subs in one package for exporting; see the Specio::Exporter docs for
- more detail
- * Mon Feb 13 2017 Paul Howarth <paul@city-fan.org> - 0.35-1
- - Update to 0.35
- - Added Specio::Subs, a module that allows you to turn one or more library's
- types into subroutines like is_Int() and to_Int()
- - Added an inline_coercion method to Specio constraints
- * Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.34-2
- - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
- * Mon Jan 30 2017 Paul Howarth <paul@city-fan.org> - 0.34-1
- - Update to 0.34
- - Packages with Specio::Exporter can now specify additional arbitrary subs to
- exporter; see the Specio::Exporter docs for details
- - Importing the same library twice in a given package would throw an
- exception; the second attempt to import is now ignored
- * Wed Jan 25 2017 Paul Howarth <paul@city-fan.org> - 0.33-1
- - Update to 0.33
- - Fixed a mistake in the SYNOPSIS for Specio::Declare; the example for the
- *_isa_type helpers was not correct
- - Removed the alpha warning from the docs; this is being used by enough of my
- modules on CPAN that I don't plan on doing any big breaking changes without
- a deprecation first
- * Fri Jan 13 2017 Paul Howarth <paul@city-fan.org> - 0.32-1
- - Update to 0.32
- - Fixed a bug in the inlining for types create by any_can_type() and
- object_can_type(); this inlining mostly worked by accident because of some
- List::Util XS magic, but this broke under the debugger (GH#6,
- https://github.com/houseabsolute/DateTime.pm/issues/49)
- * Mon Nov 7 2016 Paul Howarth <paul@city-fan.org> - 0.31-1
- - Update to 0.31
- - The stack trace contained by Specio::Exception objects no longer includes
- stack frames for the Specio::Exception package
- - Made the inline_environment() and description() methods public on type and
- coercion objects
- * Thu Oct 20 2016 Petr Pisar <ppisar@redhat.com> - 0.30-2
- - Break build cycle: perl-Moose → perl-DateTime → perl-Specio
- * 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 occurred 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
|