-
Notifications
You must be signed in to change notification settings - Fork 6
/
Changes
286 lines (230 loc) · 10.8 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
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