forked from moose/Moose
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changes
3163 lines (2514 loc) · 111 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
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Also see Moose::Manual::Delta for more details of, and workarounds
for, noteworthy changes.
[NEW FEATURES]
* We no longer unimport strict and warnings when Moose, Moose::Role, or
Moose::Exporter are unimported. Doing this was broken if the user
explicitly loaded strict and warnings themself, and the results could be
generally surprising. We decided that it was best to err on the side of
safety and leave these on. Reported by David Wheeler. RT #58310. (Dave
Rolsky)
[BUG FIXES]
* Accessors will now not be inlined if the instance metaclass isn't
inlinable (doy).
1.08 Tue, Jun 15, 2010
[ENHANCEMENTS]
* Refactored a small amount of Moose::Meta::Method::Constructor to allow it
to be overridden more easily (doy).
1.07 Sat, Jun 05, 2010
[BUG FIXES]
* Fixed a minor metaclass compatibility fixing bug dealing with immutable
classes and non-class metaclass traits (doy, dougdude).
1.06 Tue, Jun 01, 2010
[NEW FEATURES]
* Added '0+' overloading in Moose::Meta::TypeConstraint so that we can
more uniformly compare type constraints between 'classic' Moose type
constraints and MooseX::Types based type constraints.
1.05 Thu, May 20, 2010
[API CHANGES]
* Packages and modules no longer have methods - this functionality was
moved back up into Moose::Meta::Class and Moose::Meta::Role individually
(through the Class::MOP::Mixin::HasMethods mixin) (doy).
* BUILDALL is now called by Moose::Meta::Class::new_object, rather than by
Moose::Object::new. (doy)
[NEW FEATURES]
* strict and warnings are now unimported when Moose, Moose::Role, or
Moose::Exporter are unimported. (doy, Adam Kennedy)
* Added a 'consumers' method to Moose::Meta::Role for finding all
classes/roles which consume the given role. (doy)
[BUG FIXES]
* Fix has '+attr' in Roles to explode immediately, rather than when the role
is applied to a class (t0m).
* Fix type constraint validation messages to not include the string 'failed'
twice in the same sentence (Florian Ragwitz).
* New type constraints will default to being unequal, rather than equal
(rjbs).
* The tests no longer check for perl's behavior of clobbering $@, which has
been fixed in perl-5.13.1 (Florian Ragwitz).
* Metaclass compatibility fixing has been completely rewritten, and should
be much more robust. (doy)
1.04 Thu, May 20, 2010
* This release was broken and has been deleted from CPAN shortly after its
upload.
1.03 Thu, May 06, 2010
[NEW FEATURES]
* Allow specifying required versions when setting superclasses or applying
roles (Florian Ragwitz).
1.02 Sat, May 01, 2010
[BUG FIXES]
* Stop the natatime method provided by the native Array trait from returning
an exhausted iterator when being called with a callback. (Florian Ragwitz)
* Make Moose::Meta::TypeConstraint::Class correctly reject RegexpRefs.
(Florian Ragwitz)
* Calling is_subtype_of on a Moose::Meta::TypeConstraint::Class with itself or
the class the TC represents as an argument incorrectly returned true. This
behavior is correct for is_type_of, not is_subtype_of. (Guillermo Roditi)
* Use File::Temp for temp files created during tests. Previously, files were
written to the t/ dir, which could cause problems of the user running the
tests did not have write access to that directory.. (Chris Weyl, Ævar
Arnfjörð Bjarmason)
* Pass role arguments along when applying roles to instances. (doy, lsm)
1.01 Fri, Mar 26, 2010
[NEW FEATURES]
* The handles option now also accepts a role type constraint in addition to a
plain role name. (Florian Ragwitz)
[OTHER]
* Record the Sartak/doy debt properly in Changes (perigrin)
1.00 Tue, Mar 25, 2010
[BUG FIXES]
* Moose::Meta::Attribute::Native::Trait::Code no longer creates reader
methods by default. (Florian Ragwitz)
[DOCUMENTATION]
* Improve various parts of the documentation and fix many typos.
(Dave Rolsky, Mateu Hunter, Graham Knop, Robin V, Jay Hannah, Jesse Luehrs)
[OTHER]
* Paid the $10 debt to doy from 0.80 Sat, Jun 6, 2009 (Sartak)
0.99 Mon, Mar 8, 2010
[NEW FEATURES]
* New method find_type_for in Moose::Meta::TypeConstraint::Union, for finding
which member of the union a given value validates for. (Cory Watson)
[BUG FIXES]
* DEMOLISH methods in mutable subclasses of immutable classes are now called
properly (Chia-liang Kao, Jesse Luehrs)
[NEW DOCUMENTATION]
* Added Moose::Manual::Support that defines the support, compatiblity, and
release policies for Moose. (Chris Prather)
0.98 Wed, Feb 10, 2010
[BUG FIXES]
* An internals change in 0.97 broke role application to an instance in some
cases. The bug occurred when two different roles were applied to different
instances of the same class. (Rafael Kitover)
0.97 Tue, Feb 9, 2010
[BUG FIXES]
* Calling ->reinitialize on a cached anonymous class effectively uncached
the metaclass object, causing the metaclass to go out of scope
unexpectedly. This could easily happen at a distance by applying a
metarole to an anonymous class. (Dave Rolsky).
0.96 Sat, Feb 6, 2010
[NEW FEATURES]
* ScalarRef is now a parameterized type. You can now specify a type
constraint for whatever the reference points to. (Closes RT#50857)
(Michael G. Schwern, Florian Ragwitz)
[BUG FIXES]
* ScalarRef now accepts references to other references. (Closes RT#50934)
(Michael G. Schwern)
0.95 Thu, Feb 4, 2010
[NEW FEATURES]
* Moose::Meta::Attribute::Native::Trait::Code now provides execute_method as
a delegation option. This allows the code reference to be called as a
method on the object. (Florian Ragwitz)
[ENHANCEMENTS]
* Moose::Object::does no longer checks the entire inheritance tree, since
Moose::Meta::Class::does_role already does this. (doy)
* Moose::Util::add_method_modifier (and subsequently the sugar functions
Moose::before, Moose::after, and Moose::around) can now accept arrayrefs,
with the same behavior as lists. Types other than arrayref and regexp
result in an error. (Dylan Hardison)
0.94 Mon, Jan 18, 2010
[API CHANGES]
* Please see the changes listed for 0.93_01 and Moose::Manual::Delta.
[ENHANCEMENTS]
* Improved support for anonymous roles by changing various APIs to take
Moose::Meta::Role objects as well as role names. This included
- Moose::Meta::Class->does_role
- Moose::Meta::Role->does_role
- Moose::Util::does_role
- Moose::Util::apply_all_roles
- Moose::Util::ensure_all_roles
- Moose::Util::search_class_by_role
Requested by Shawn Moore. Addresses RT #51143 (and then some). (Dave Rolsky)
[BUG FIXES]
* Fix handling of non-alphanumeric attributes names like '@foo'. This should
work as long as the accessor method names are explicitly set to valid Perl
method names. Reported by Doug Treder. RT #53731. (Dave Rolsky)
0.93_03 Tue, Jan 5, 2010
[BUG FIXES]
* Portability fixes to our XS code so we compile with 5.8.8 and Visual
C++. Fixes RT #53391. Reported by Taro Nishino. (rafl)
0.93_02 Tue, Jan 5, 2010
[BUG FIXES]
* Depend on Class::MOP 0.97_01 so we can get useful results from CPAN
testers. (Dave Rolsky)
0.93_01 Mon, Jan 4, 2010
[API CHANGES]
See Moose::Manual::Delta for more details on backwards compatiblity issues.
* Role attributes are now objects of the Moose::Meta::Role::Attribute
class. (Dave Rolsky).
* There were major changes to how metaroles are applied. We now distinguish
between metaroles for classes vs those for roles. See the
Moose::Util::MetaRole docs for details. (Dave Rolsky)
* The old MetaRole API has been deprecated, but will continue to
work. However, if you are applying an attribute metaclass role, this may
break because of the fact that roles now have an attribute metaclass
too. (Dave Rolsky)
* Moose::Util::MetaRole::apply_metaclass_roles is now called
apply_metaroles. The old name is deprecated. Dave Rolsky>
* The unimport subs created by Moose::Exporter now clean up re-exported
functions like blessed and confess, unless the caller imported them from
somewhere else too. See Moose::Manua::Delta for backcompat details. (rafl)
[ENHANCEMENTS AND BUG FIXES]
* Changed the Str constraint to accept magic lvalue strings like one gets from
substr et al, again. (sorear)
* Sped up the type constraint parsing regex. (Sam Vilain)
* The Moose::Cookbook::Extending::Recipe2 recipe was broken. Fix suggested by
jrey.
* Added Moose::Util::TypeConstraints exports when using oose.pm to allow
easier testing of TypeConstraints from the command line. (perigrin)
* Added a with_immutable test function to Test::Moose, to run a block of tests
with and without certain classes being immutable. (doy)
* We now use Module::Install extensions explicitly to avoid confusing errors
if they're not installed. We use Module::Install::AuthorRequires to stop
test extraction and general failures if you don't have the author side
dependencies installed.
* Fixed a grammar error in Moose::Cookbook::Basics::Recipe4. rt.cpan.org
#51791. (Amir E. Aharoni)
0.93 Thu, Nov 19, 2009
* Moose::Object
- Calling $object->new() is no longer deprecated, and no longer
warns. (doy)
* Moose::Meta::Role
- The get_attribute_map method is now deprecated. (Dave Rolsky)
* Moose::Meta::Method::Delegation
- Preserve variable aliasing in @_ for delegated methods, so that
altering @_ affects the passed value. (doy)
* Moose::Util::TypeConstraints
- Allow array refs for non-anonymous form of enum and duck_type, not
just anonymous. The non-arrayref forms may be removed in the
future. (doy)
- Changed Str constraint to not accept globs (*STDIN or *FOO). (chansen)
- Properly document Int being a subtype of Str. (doy)
* Moose::Exporter
- Moose::Exporter using modules can now export their functions to the
main package. This applied to Moose and Moose::Role, among
others. (nothingmuch)
* Moose::Meta::Attribute
- Don't remove attribute accessors we never installed, during
remove_accessors. (doy)
* Moose::Meta::Attribute::Native::Trait::Array
- Don't bypass prototype checking when calling List::Util::first, to
avoid a segfault when it is called with a non-code argument. (doy)
* Moose::Meta::Attribute::Native::Trait::Code
- Fix passing arguments to code execute helpers. (doy)
0.92 Tue, Sep 22, 2009
* Moose::Util::TypeConstraints
- added the match_on_type operator (Stevan)
- added tests and docs for this (Stevan)
* Moose::Meta::Class
- Metaclass compat fixing should already happen recursively, there's no
need to explicitly walk up the inheritance tree. (doy)
* Moose::Meta::Attribute
- Add tests for set_raw_value and get_raw_value. (nothingmuch)
0.91 Thu, Sep 17, 2009
* Moose::Object
- Don't import any functions, in order to avoid polluting our namespace
with things that can look like methods (blessed, try, etc)
(nothingmuch)
* Moose::Meta::Method::Constructor
- The generated code needs to called Scalar::Util::blessed by its
fully-qualified name or else Perl can interpret the call to blessed as
an indirect method call. This broke Search::GIN, which in turn broke
KiokuDB. (nothingmuch)
0.90 Tue, Sep 15, 2009
* Moose::Meta::Attribute::Native::Trait::Counter
* Moose::Meta::Attribute::Native::Trait::String
- For these two traits, an attribute which did not explicitly provide
methods to handles magically ended up delegating *all* the helper
methods. This has been removed. You must be explicit in your handles
declaration for all Native Traits. (Dave Rolsky)
* Moose::Object
- DEMOLISHALL behavior has changed. If any DEMOLISH method dies, we make
sure to rethrow its error message. However, we also localize $@ before
this so that if all the DEMOLISH methods success, the value of $@ will
be preserved. (nothingmuch and Dave Rolsky)
- We now also localize $? during object destruction. (nothingmuch and
Dave Rolsky)
- The handling of DEMOLISH methods was broken for immutablized classes,
which were not receiving the value of
Devel::GlobalDestruction::in_global_destruction.
- These two fixes address some of RT #48271, reported by Zefram.
- This is all now documented in Moose::Manual::Construction.
- Calling $object->new() is now deprecated. A warning will be
issued. (perigrin)
* Moose::Meta::Role
- Added more hooks to customize how roles are applied. The role
summation class, used to create composite roles, can now be changed
and/or have meta-roles applied to it. (rafl)
- The get_method_list method no longer explicitly excludes the "meta"
method. This was a hack that has been replaced by better hacks. (Dave
Rolsky)
* Moose::Meta::Method::Delegation
- fixed delegated methods to make sure that any modifiers attached to
the accessor being delegated on will be called (Stevan)
- added tests for this (Stevan)
* Moose::Meta::Class
- Moose no longer warns when a class that is being made immutable has
mutable ancestors. While in theory this is a good thing to warn about,
we found so many exceptions to this that doing this properly became
quite problematic.
0.89_02 Thu, Sep 10, 2009
* Moose::Meta::Attribute::Native
- Fix Hash, which still had 'empty' instead of 'is_empty'. (hdp)
* Moose::Meta::Attribute::Native::Trait::Array
- Added a number of functions from List::Util and List::MoreUtils,
including reduce, shuffle, uniq, and natatime. (doy)
* Moose::Exporter
- This module will now generate an init_meta method for your exporting
class if you pass it options for
Moose::Util::MetaRole::apply_metaclass_roles or
apply_base_class_roles. This eliminates a lot of repetitive
boilerplate for typical MooseX modules. (doy).
- Documented the with_meta feature, which is a replacement for
with_caller. This feature was added by josh a while ago.
- The with_caller feature is now deprecated, but will not issue a
warning yet. (Dave Rolsky)
- If you try to wrap/export a subroutine which doesn't actually exist,
Moose::Exporter will warn you about this. (doy)
* Moose::Meta::Role::Application::ToRole
- When a role aliased a method from another role, it was only getting
the new (aliased) name, not the original name. This differed from what
happens when a class aliases a role's methods. If you _only_ want the
aliased name, make sure to also exclue the original name. (Dave
Rolsky)
0.89_01 Wed Sep 2, 2009
* Moose::Meta::Attribute
- Added the currying syntax for delegation from AttributeHelpers to the
existing delegation API. (hdp)
* Moose::Meta::Attribute::Native
- We have merged the functionality of MooseX::AttributeHelpers into the
Moose core with some API tweaks. You can continue to use
MooseX::AttributeHelpers, but it will not be maintained except
(perhaps) for critical bug fixes in the future. See
Moose::Manual::Delta for details. (hdp, jhannah, rbuels, Sartak,
perigrin, doy)
* Moose::Error::Croak
* Moose::Error::Confess
- Clarify documentation on how to use different error-throwing
modules. (Curtis Jewell)
* Moose
- Correct POD for builder to point to Recipe8, not 9. (gphat)
* Moose::Exporter
- When a nonexistent sub name is passed to as_is, with_caller, or
with_meta, throw a warning and skip the exporting, rather than
installing a broken sub. (doy)
* Moose::Meta::Class
- Moose now warns if you call C<make_immutable> for a class with mutable
ancestors. (doy)
0.89 Thu Aug 13, 2009
* Moose::Manual::Attributes
- Clarify "is", include discussion of "bare". (Sartak)
* Moose::Meta::Role::Method::Conflicting
* Moose::Meta::Role::Application::ToClass
- For the first set of roles involved in a conflict, report all
unresolved method conflicts, not just the first method. Fixes #47210
reported by Ovid. (Sartak)
* Moose::Meta::TypeConstraint
- Add assert_valid method to use a TypeConstraint for assertion (rjbs)
* Moose::Exporter
- Make "use Moose -metaclass => 'Foo'" do alias resolution, like -traits
does. (doy)
- Allow specifying role options (alias, excludes, MXRP stuff) in the
arrayref passed to "use Moose -traits" (doy)
* Moose::Util
- Add functions meta_class_alias and meta_attribute_alias for creating
aliases for class and attribute metaclasses and metatraits. (doy)
* Moose::Meta::Attribute
* Moose::Meta::Method::Accessor
- A trigger now receives the old value as a second argument, if the
attribute had one. (Dave Rolsky)
* Moose::Meta::Method::Constructor
- Fix a bug with $obj->new when $obj has stringify overloading.
Reported by Andrew Suffield [rt.cpan.org #47882] (Sartak)
- However, we will probably deprecate $obj->new, so please don't start
using it for new code!
* Moose::Meta::Role::Application
* Moose::Meta::Role::Application::RoleSummation
- Rename alias and excludes to -alias and -excludes (but keep the old
names for now, for backcompat) (doy)
0.88 Fri Jul 24, 2009
* Moose::Manual::Contributing
- Re-write the Moose::Manual::Contributing document to reflect
the new layout and methods of work for the Git repository. All
work now should be done in topic branches and reviewed by a
core committer before being applied to master. All releases
are done by a cabal member and merged from master to
stable. This plan was devised by Yuval, blame him. (perigrin)
* Moose::Meta::Role
- Create metaclass attributes for the different role application
classes. (rafl)
* Moose::Util::MetaRole
- Allow applying roles to a meta role's role application
classes. (rafl)
* Moose::Meta::Attribute
- Add weak_ref to allowed options for "has '+foo'" (mst)
* Moose::Meta::Method::Accessor
- No longer uses inline_slot_access in accessors, to support
non-lvalue-based meta instances. (sorear)
0.87 Tue Jul 7, 2009
* Moose::Meta::Method::Delegation
- Once again allow class names as well as objects for
delegation. This was changed in 0.86.
0.86 Fri Jul 3, 2009
* Moose::Meta::Class::Immutable::Trait
- Fixes to work with the latest Class::MOP.
* Moose::Meta::Method::Delegation
- Delegation now dies with a more useful error message if the
attribute's accessor returns something defined but
unblessed. (hdp)
0.85 Fri, Jun 26, 2009
* Moose::Meta::Attribute
- The warning for 'no associated methods' is now split out into
the _check_associated_methods method, so that extensions can
safely call 'after install_accessors => ...'. This fixes a
warning from MooseX::AttributeHelpers. (hdp)
0.84 Fri, Jun 26, 2009
* Moose::Role
- has now sets definition_context for attributes defined in
roles. (doy)
* Moose::Meta::Attribute
- When adding an attribute to a metaclass, if the attribute has
no associated methods, it will give a deprecation
warning. (hdp)
- Methods generated by delegation were not being added to
associated_methods. (hdp)
- Attribute accessors (reader, writer, accessor, predicate,
clearer) now warn if they overwrite an existing method. (doy)
- Attribute constructors now warn very noisily about unknown (or
misspelled) arguments
* Moose::Util::TypeConstraints
- Deprecated the totally useless Role type name, which just
checked if $object->can('does'). Note that this is _not_ the
same as a type created by calling role_type('RoleName').
* Moose::Util::TypeConstraints
* Moose::Meta::TypeConstraint::DuckType
- Reify duck type from a regular subtype into an actual class
(Sartak)
- Document this because Sartak did all my work for me
(perigrin)
* Moose::Meta::Attribute
- Allow Moose::Meta::TypeConstraint::DuckType in handles, since
it is just a list of methods (Sartak)
* Moose::Meta::Role
- The get_*_method_modifiers methods would die if the role had
no modifiers of the given type (Robert Buels).
0.83 Tue, Jun 23, 2009
* Moose::Meta::Class
- Fix _construct_instance not setting the special __MOP__ object
key in instances of anon classes. (doy)
0.82 Sun, Jun 21, 2009
* Moose::Manual::Types
- Mention MooseX::Types early to avoid users falling down the
string parsing rathole (mst)
* Moose::Manual::MooseX
- Add warnings about class-level extensions and mention considering
using plain objects instead
0.81 Sun, Jun 7, 2009
* Bumped our Class::MOP prereq to the latest version (0.85), since
that's what we need.
0.80 Sat, Jun 6, 2009
* Moose::Manual::FAQ
- Add FAQ about the coercion change from 0.76 because it came up
three times today (perigrin)
- Win doy $10 dollars because Sartak didn't think anybody
would document this fast enough (perigrin)
* Moose::Meta::Method::Destructor
- Inline a DESTROY method even if there are no DEMOLISH methods
to prevent unnecessary introspection in
Moose::Object::DEMOLISHALL
* Moose::*
- A role's required methods are now represented by
Moose::Meta::Role::Method::Required objects. Conflicts are now
represented by Moose::Meta::Role::Method::Conflicting
objects. The benefit for end-users in that unresolved
conflicts generate different, more instructive, errors,
resolving Ovid's #44895. (Sartak)
* Moose::Role
- Improve the error message of "extends" as suggested by Adam
Kennedy and confound (Sartak)
- Link to Moose::Manual::Roles from Moose::Role as we now have
excellent documentation (Adam Kennedy)
* Tests
- Update test suite for subname change in Class::MOP
(nothingmuch)
- Add TODO test for infinite recursion in Moose::Meta::Class
(groditi)
0.79 Wed, May 13, 2009
* Tests
- More fixes for Win32 problems. Reported by Robert Krimen.
* Moose::Object
- The DEMOLISHALL method could still blow up in some cases
during global destruction. This method has been made more
resilient in the face of global destruction's random garbage
collection order.
* Moose::Exporter
- If you "also" a module that isn't loaded, the error message
now acknowledges that (Sartak)
* Moose
- When your ->meta method does not return a Moose::Meta::Class,
the error message gave the wrong output (Sartak)
0.78 Tue, May 12, 2009
* Moose::Cookbook::FAQ and Moose::Cookbook::WTF
- Merged these documents into what is now Moose::Manual::FAQ
* Moose::Unsweetened
- Moved to Moose::Manual::Unsweetened
* Moose::Cookbook::Basics::Recipes 9-12
- Renamed to be 8-11, since recipe 8 did not exist
* Moose::Exporter
- Make Moose::Exporter import strict and warnings into packages
that use it (doy)
* Moose::Object
- Fix DEMOLISHALL sometimes not being able to find DEMOLISH
methods during global destruction (doy)
* Moose::Meta::Class
* Moose::Meta::Role::Application::ToClass
- Track the Role::Application objects created during class-role
consumption (Sartak)
* Moose::Meta::Class
- Fix metaclass incompatibility errors when extending a vanilla perl
class which isa Moose class with a metaclass role applied (t0m)
* Moose::Meta::Role
- Add a role-combination hook, _role_for_combination, for the
benefit of MooseX::Role::Parameterized (Sartak)
* Tests
- Some tests were failing on Win32 because they explicit checked
warning output for newlines. Reported by Nickolay Platonov.
0.77 Sat, May 2, 2009
* Moose::Meta::Role
- Add explicit use of Devel::GlobalDestruction and Sub::Name
(perigrin)
* Moose::Object
- Pass a boolean to DEMOLISHALL and DEMOLISH indicating whether
or not we are currently in global destruction (doy)
- Add explicit use of Devel::GlobalDestruction and Sub::Name
(perigrin)
* Moose::Cookbook::FAQ
- Reworked much of the existing content to be more useful to
modern Moose hackers (Sartak)
* Makefile.PL
- Depend on Class::MOP 0.83 instead of 0.82_01.
0.76 Mon, April 27, 2009
* Moose::Meta::TypeConstraint
- Do not run coercions in coerce() if the value already passes the type
constraint (hdp)
* Moose::Meta::TypeConstraint::Class
- In validation error messages, specifically say that the value is not
an instance of the class. This should alleviate some frustrating
forgot-to-load-my-type bugs. rt.cpan.org #44639 (Sartak)
* Moose::Meta::Role::Application::ToClass
- Revert the class-overrides-role warning in favor of a solution outside
of the Moose core (Sartak)
* Tests
- Make Test::Output optional again, since it's only used in a few files
(Sartak)
0.75_01 Thu, April 23, 2009
* Moose::Meta::Role::Application::ToClass
- Moose now warns about each class overriding methods from roles it
consumes (Sartak)
* Tests
- Warnings tests have standardized on Test::Output which is now an
unconditionally dependency (Sartak)
* Moose::Meta::Class
- Changes to immutabilization to work with Class::MOP 0.82_01+.
0.75 Mon, April 20, 2009
* Moose
* Moose::Meta::Class
- Move validation of not inheriting from roles from Moose::extends to
Moose::Meta::Class::superclasses (doy)
* Moose::Util
- add ensure_all_roles() function to encapsulate the common "apply this
role unless the object already does it" pattern (hdp)
* Moose::Exporter
- Users can now select a different metaclass with the "-metaclass"
option to import, for classes and roles (Sartak)
* Moose::Meta::Role
- Make method_metaclass an attr so that it can accept a metarole
application. (jdv)
0.74 Tue, April 7, 2009
* Moose::Meta::Role
* Moose::Meta::Method::Destructor
- Include stack traces in the deprecation warnings.
(Florian Ragwitz)
* Moose::Meta::Class
- Removed the long-deprecated _apply_all_roles method.
* Moose::Meta::TypeConstraint
- Removed the long-deprecated union method.
0.73_02 Mon, April 6, 2009
* More deprecations and renamings
- Moose::Meta::Method::Constructor
- initialize_body => _initialize_body (this is always called
when an object is constructed)
* Moose::Object
- The DEMOLISHALL method could throw an exception during global
destruction, meaning that your class's DEMOLISH methods would
not be properly called. Reported by t0m.
* Moose::Meta::Method::Destructor
- Destructor inlining was totally broken by the change to the
is_needed method in 0.72_01. Now there is a test for this
feature, and it works again.
* Moose::Util
- Bold the word 'not' in the POD for find_meta (t0m)
0.73_01 Sun, April 5, 2009
* Moose::*
- Call user_class->meta in fewer places, with the eventual goal
of allowing the user to rename or exclude ->meta
altogether. Instead uses Class::MOP::class_of. (Sartak)
* Moose::Meta::Method::Accessor
- If an attribute had a lazy default, and that value did not
pass the attribute's type constraint, it did not get the
message from the type constraint, instead using a generic
message. Test provided by perigrin.
* Moose::Util::TypeConstraints
- Add duck_type keyword. It's sugar over making sure an object
can() a list of methods. This is easier than jrockway's
suggestion to fork all of CPAN. (perigrin)
- add tests and documentation (perigrin)
* Moose
- Document the fact that init_meta() returns the target class's
metaclass object. (hdp)
* Moose::Cookbook::Extending::Recipe1
* Moose::Cookbook::Extending::Recipe2
* Moose::Cookbook::Extending::Recipe3
* Moose::Cookbook::Extending::Recipe4
- Make init_meta() examples explicitly return the metaclass and
point out this fact. (hdp)
* Moose::Cookbook::Basics::Recipe12
- A new recipe, creating a custom meta-method class.
* Moose::Cookbook::Meta::Recipe6
- A new recipe, creating a custom meta-method class.
* Moose::Meta::Class
* Moose::Meta::Method::Constructor
- Attribute triggers no longer receive the meta-attribute object
as an argument in any circumstance. Previously, triggers
called during instance construction were passed the
meta-attribute, but triggers called by normal accessors were
not. Fixes RT#44429, reported by Mark Swayne. (hdp)
* Moose::Manual::Attributes
- Remove references to triggers receving the meta-attribute object as an
argument. (hdp)
* Moose::Cookbook::FAQ
- Remove recommendation for deprecated Moose::Policy and
Moose::Policy::FollowPBP; recommend MooseX::FollowPBP
instead. (hdp)
* Many methods have been renamed with a leading underscore, and a
few have been deprecated entirely. The methods with a leading
underscore are consider "internals only". People writing
subclasses or extensions to Moose should feel free to override
them, but they are not for "public" use.
- Moose::Meta::Class
- check_metaclass_compatibility => _check_metaclass_compatibility
- Moose::Meta::Method::Accessor
- initialize_body => _initialize_body (this is always called
when an object is constructed)
- /(generate_.*_method(?:_inline)?)/ => '_' . $1
- Moose::Meta::Method::Constructor
- initialize_body => _initialize_body (this is always called
when an object is constructed)
- /(generate_constructor_method(?:_inline)?)/ => '_' . $1
- attributes => _attributes (now inherited from parent)
- meta_instance => _meta_instance (now inherited from parent)
- Moose::Meta::Role
- alias_method is deprecated. Use add_method
0.73 Fri, March 29, 2009
* No changes from 0.72_01.
0.72_01 Thu, March 26, 2009
* Everything
- Almost every module has complete API documentation. A few
methods (and even whole classes) have been intentionally
excluded pending some rethinking of their APIs.
* Moose::Util::TypeConstraints
- Calling subtype with a name as the only argument is now an
exception. If you want an anonymous subtype do:
my $subtype = subtype as 'Foo';
* Moose::Cookbook::Meta::Recipe7
- A new recipe, creating a custom meta-instance class.
* Moose::Cookbook::Basics::Recipe5
- Fix various typos and mistakes. Includes a patch from Radu
Greab.
* Moose::Cookbook::Basics::Recipe9
- Link to this recipe from Moose.pm's builder blurb
* Moose::Exporter
- When wrapping a function with a prototype, Moose::Exporter now
makes sure the wrapped function still has the same
prototype. (Daisuke Maki)
* Moose::Meta::Attribute
- Allow a subclass to set lazy_build for an inherited
attribute. (hdp)
* Makefile.PL
- Explicitly depend on Data::OptList. We already had this dependency
via Sub::Exporter, but since we're using it directly we're
better off with it listed. (Sartak)
* Moose::Meta::Method::Constructor
- Make it easier to subclass the inlining behaviour. (Ash
Berlin)
* Moose::Manual::Delta
- Details significant changes in the history of Moose, along
with recommended workarounds.
* Moose::Manual::Contributing
- Contributor's guide to Moose.
* Moose::Meta::Method::Constructor
- The long-deprecated intialize_body method has been removed
(yes, spelled like that).
* Moose::Meta::Method::Destructor
- This is_needed method is now always a class method.
* Moose::Meta::Class
- Changes to the internals of how make_immutable works to match
changes in latest Class::MOP.
0.72 Mon, February 23, 2009
* Moose::Object
* Moose::Meta::Method::Constructor
- A mutable class accepted Foo->new(undef) without complaint,
while an immutable class would blow up with an unhelpful
error. Now, in both cases we throw a helpful error
instead. Reported by doy.
0.71_01 Sun, February 22, 2009
* Moose::Cookbook
- Hopefully fixed some POD errors in a few recipes that caused
them to display weird on search.cpan.org.
* Moose::Util::TypeConstraints
- Calling type or subtype without the sugar helpers (as, where,
message) is now deprecated.
- The subtype function tried hard to guess what you meant, but
often got it wrong. For example:
my $subtype = subtype as 'ArrayRef[Object]';
This caused an error in the past, but now works as you'd
expect.
* Everywhere
- Make sure Moose.pm is loaded before calling
Moose->throw_error. This wasn't normally an issue, but could
bite you in weird cases.
0.71 Thu, February 19, 2009
* Moose::Cookbook::Basics::Recipe11
- A new recipe which demonstrates the use of BUILDARGS and
BUILD. (Dave Rolsky)
* Moose::Cookbook::Roles::Recipe3
- A new recipe, applying a role to an object instance. (Dave
Rolsky)
* Moose::Exporter
- Allow overriding specific keywords from "also" packages. (doy)
* Tests
- Replace hardcoded cookbook tests with Test::Inline to ensure
the tests match the actual code in the recipes. (Dave Rolsky)
* Moose::Cookbook
- Working on the above turned up a number of little bugs in the
recipe code. (Dave Rolsky)
* Moose::Util::TypeConstraints::Optimized
- Just use Class::MOP for the optimized ClassName check. (Dave
Rolsky)
0.70 Sat, February 14, 2009
* Moose::Util::TypeConstraints
- Added the RoleName type (stevan)
- added tests for this (stevan)
* Moose::Cookbook::Basics::Recipe3
- Updated the before qw[left right] sub to be a little more
defensive about what it accepts (stevan)
- added more tests to t/000_recipies/basics/003_binary_tree.t
(stevan)
* Moose::Object
- We now always call DEMOLISHALL, even if a class does not
define DEMOLISH. This makes sure that method modifiers on
DEMOLISHALL work as expected. (doy)
- added tests for this (EvanCarroll)
* Moose::Util::MetaRole
- Accept roles for the wrapped_method_metaclass (rafl)
- added tests for this (rafl)
* Moose::Meta::Attribute
- We no longer pass the meta-attribute object as a final
argument to triggers. This actually changed for inlined code a
while back, but the non-inlined version and the docs were
still out of date.
* Tests
- Some tests tried to use Test::Warn 0.10, which had bugs. Now
they require 0.11. (Dave Rolsky)
* Documentation
- Lots of small changes to the manual, cookbook, and
elsewhere. These were based on feedback from various
users, too many to list here. (Dave Rolsky)