Revision history for Role-Tiny
2.002004 - 2021-01-24
- restore requiring base class when using create_class_with_roles, which was
accidentally lost in 2.002_000 (RT#134075)
2.002003 - 2021-01-11
- set dynamic_config to 0 and x_static_install to 1
- fixed filenames in dependents author test to not use colons
- removed MRO::Compat from prereqs as it is no longer used
- marked Class::Method::Modifiers as a hard developer dependency rather than
a recommended developer dependency
- rewrote test for namespace cleaning to not require namespace::clean, and
moved it from an author test to a normal test
- removed namespace::autoclean from developer prereqs
2.002_002 - 2021-01-03
- refactored some internals for subclasses to use
- methods_provided_by will ensure the module is loaded before checking for
methods
2.002_001 - 2020-12-27
- fix tests when Class::Method::Modifiers is not installed
2.002_000 - 2020-12-23
- Refactored create_class_with_roles to not use "composable packages". This
was an optimization for when a role is used in many different uses of
create_class_with_roles, but required an entirely separate implementation,
which did not have fully compatible behavior. It would also result in
methods using modifiers being slower.
- Add documentation for what methods will be composed from a role
(RT#133363)
- Fix backwards compatibility with older versions of Moo when interacting
with Moose.
- Treat modifiers as required methods during create_class_with_roles.
- Fixed methods being no longer composed after they participated in an
allowed conflict.
- Dropped use of MRO::Compat.
- Test cleanups for checking requires during create_class_with_roles.
- Additional tests to confirm internal role application steps can be fully
qualified.
- Fix Pod links to Class::Method::Modifiers
- Tweaks to author tests
- Additional tests for working with older Moo versions
- Additional tests for module loading
- Allow method modifiers to be specified with an array reference of method
names, rather than a list. This now matches how the corresponding
Class::Method::Modifiers subs can be called.
2.001004 - 2019-10-25
- fix methods being excluded from composition if they previously existed in
the composing role (RT#130811)
- fix role application overwriting subs that are not considered methods
- fix helper subs created by a Role::Tiny extension (like Moo::Role)
sometimes being teated as methods
2.001003 - 2019-10-09
- releasing as stable
2.001_002 - 2019-10-06
- fix methods from roles composed via create_class_with_roles being treated
differently from roles composed directly (RT#128470)
- fix constants being included in the methods provided by a role if they
were created before importing Role::Tiny but used after importing
- fix prototype handling test on cperl
2.001001 - 2019-10-01
- added tests for make_role
2.001_000 - 2019-09-19
- refactored method tracking to allow easier extending (such as by Moo)
- added make_role method to make a package into a role, but without
exporting any subs into it
- refactored sub exporting to allow extensions to do different things with
the subs
2.000_009 - 2019-09-06
- fix composing roles into packages that have stub subs in them
- treat constants consistently with all other subs, no matter where they are
defined
2.000008 - 2019-08-05
- reverting all changes from 2.000007 due to failures on some perl versions
and a number of downstream users. The changes will be reintroduced in a
fixed form in a future version.
2.000007 - 2019-07-31
- fix composing roles into packages that have stub subs in them
- exclude all constant subs from method list
2.000006 - 2017-11-08
- account for code references stored directly in stash (for perl 5.28)
- work around hint leakage when loading modules in perl 5.8 and 5.10.1
2.000005 - 2016-11-01
- revert change to MRO::Compat usage
2.000004 - 2016-10-31
- Fix consuming stubs from roles (RT#116674).
- Fix error message when applying conflicting roles to an object.
- Drop prerequisite on MRO::Compat on perl 5.8.
2.000003 - 2016-04-21
- don't install subs if importing into a package that is already a role. This
can happen if the module previously imported Moo::Role.
2.000002 - 2016-04-19
- restore compatibility with Moo versions pre 1.004_003
- delay loading Class::Method::Modifiers until applying modifiers to a package
- use croak rather than die for reporting errors
- apply method modifiers only once, even if they are applied via multiple
composition paths (RT#106668)
2.000001 - 2015-04-24
- fix generating invalid package names with single colons when abbreviating
long package names (RT#103310)
- don't run module interaction tests for user installs
2.000000 - 2015-02-26
* Incompatible Changes
- Role::Tiny no longer applies fatal warnings to roles created with it.
strict and non-fatal warnings will continue to be applied.
1.003004 - 2014-10-22
- allow does_role to be overridden by Moo::Role
1.003003 - 2014-03-15
- overloads specified as method names rather than subrefs are now applied
properly
- allow superclass to provide conflicting methods (RT#91054)
- use ->is_role internally to check if a package is a role
- document that Role::Tiny applies strict and fatal warnings
1.003002 - 2013-09-04
- abbreviate generated package names if they are longer than perl can handle
(RT#83248)
- add explicit dependency on the version of Exporter that added 'import'
1.003001 - 2013-07-14
- fix test accidentally requiring Class::Method::Modifiers
1.003000 - 2013-07-14
- allow composing roles simultaneously that mutually require each other
(RT#82711)
- Fix _concrete_methods_of returning non-CODE entries
- fix broken implementation of method conflict resolution
(Perlmonks#1041015)
- add is_role method for checking if a given package is a role
- drop minimum perl version - code tests just fine on 5.6.1 and 5.6.2
1.002005 - 2013-02-01
- complain loudly if Class::Method::Modifiers is too old (and skip tests)
- don't use $_ as loop variable when calling arbitrary code
1.002004 - 2012-11-02
- remove accidentally-introduced strictures.pm usage
1.002003 - 2012-10-29
- fix method modifier breakage on 5.10.0
1.002002 - 2012-10-28
- skip t/around-does.t when Class::Method::Modifiers is not installed
(RT#80310)
1.002001 - 2012-10-26
- t/does-Moo.t moved to 'xt' (RT#80290)
- don't die when looking for 'DOES' on perl < 5.10 (RT#80402)
1.002000 - 2012-10-19
- load class in addition to roles when using create_class_from_roles
- fix module name in Makefile.PL (RT#78591)
- when classes consume roles, override their DOES method (RT#79747)
- method modifiers can be used for 'does' and 'DOES'
1.001005 - 2012-07-18
- localize UNIVERSAL::can change to avoid confusing TB2
- properly report roles consumed by superclasses
1.001004 - 2012-07-12
- remove strictures.pm from the test supplied by mmcleric so we install again
- when applying runtime roles include roles from original class in new class
( fixes ::does_role checks)
1.001003 - 2012-06-19
- correctly apply modifiers with role composition
- check for conflicts during role-to-object application (test from mmcleric)
- add an explicit return to all exported subs so people don't accidentally
rely on the return value
- store coderefs as well as their refaddrs to protect against crazy
1.001002 - 2012-05-05
- alter duplication test to not provoke Class::Method::Modifiers loading
1.001001 - 2012-04-27
- remove strictures from one last test file
1.001000 - 2012-04-27
- Documentation improvements, no code changes
1.000_901 - 2012-04-12
- Fix MANIFEST inclusion of Role::Basic composition
1.000_900 - 2012-04-11
- Add composition with tests stolen from Role::Basic
1.000001 - 2012-04-03
- Document that Class::Method::Modifiers must be depended on separately
- Update tests so that they skip correctly without C::M::M
- Add a SEE ALSO section
1.000000 - 2012-03-29
- Remove redundant code in create_class_with_roles
- Minor doc fix to does_role
- Split Role::Tiny out into its own dist
Changes below this line are from when Role::Tiny was still bundled with Moo:
- Fix a bug where coercions weren't called on lazy default/builder returns
- Switch Moo::Utils to using Module::Runtime, and add the 5.8 %INC
leakage fix into Role::Tiny's _load_module to provide partial parity
- Update incompatibilities with Moose documentation
- Remove Sub::Quote's outstanding queue since it doesn't actually slow
things down to do it this way and makes debugging easier.
- Revert 'local $@' around require calls to avoid triggering Unknown Error
- Explicitly require Role::Tiny in Role::Tiny::With (RT#70446)
- Fix spurious 'once' warnings under perl -w
0.009013 - 2011-12-23
- fix up Class::XSAccessor version check to be more robust
- improved documentation
- fix failures on perls < 5.8.3
- fix test failures on cygwin
0.009012 - 2011-11-15
- make Method::Generate::Constructor handle $obj->new
- fix bug where constants containing a reference weren't handled correctly
(ref(\[]) is 'REF' not 'SCALAR', ref(\v1) is 'VSTRING')
0.009011 - 2011-10-03
- add support for DEMOLISH
- add support for BUILDARGS
0.009010 - 2011-07-20
- missing new files for Role::Tiny::With
0.009009 - 2011-07-20
- remove the big scary warning because we seem to be mostly working now
- perl based getter dies if @_ > 1 (XSAccessor already did)
- add Role::Tiny::With for use in classes
- automatically generate constructors in subclasses when required so that
subclasses with a BUILD method but no attributes get it honoured
- add coerce handling
0.009008 - 2011-06-03
- transfer fix to _load_module to Role::Tiny and make a note it's an inline
- Bring back 5.8.1 compat
0.009007 - 2011-02-25
- I botched the copyright. re-disting.
0.009006 - 2011-02-25
- handle non-lazy default and builder when init_arg is undef
- add copyright and license info for downstream packagers
- weak ref checking for Sub::Quote to avoid bugs on refaddr reuse
- Switch composed role names to be a valid package name
0.9.5 Tue Jan 11 2011
- Fix clobberage of runtime-installed wrappers by Sub::Defer
- Fix nonMoo constructor firing through multiple layers of Moo
- Fix bug where nonMoo is mistakenly detected given a Moo superclass
with no attributes (and hence no own constructor)
0.9.4 Mon Dec 13 2010
- Automatic detection on non-Moo superclasses
0.9.3 Sun Dec 5 2010
- Fix _load_module to deal with pre-existing subpackages
0.9.2 Wed Nov 17 2010
- Add explanation of Moo's existence
- Change @ISA setting mechanism to deal with a big in 5.10.0's get_linear_isa
- Change 5.10 checks to >= to not try and load MRO::Compat on 5.10.0
- Make 'perl -Moo' DTRT
0.9.1 Tue Nov 16 2010
- Initial release