Fix some broken tests (testing the wrong class)
[gitmo/Moose.git] / Changes
CommitLineData
e522431d 1Revision history for Perl extension Moose
2
3f567f44 30.55_02
c068e9a0 4 * Makefile.PL and Moose.pm
5 - explicitly require Perl 5.8.0+ (Dave Rolsky)
6
3f567f44 7 * Moose::Util::MetaRole
8 - This simplifies the application of roles to any meta class, as
9 well as the base object class. Reimplemented metaclass traits
10 using this module. (Dave Rolsky)
11
9758af8a 12 * Moose::Util::TypeConstraints
13 - Fix warnings from find_type_constraint if the type is not
14 found (t0m).
15
16 * Moose::Meta::TypeConstraint
17 - predicate methods (equals/is_a_type_of/is_subtype_of) now
18 return false if the type you specify cannot be found in the
19 type registry, rather than throwing an unhelpful and coincidental
20 exception. The behavior is now in line with to
21 $ob->isa('DoesNotExist') (t0m).
22 - added docs & test for this (t0m)
23
24 * Moose::Meta::TypeConstraint::Registry
25 - add_type_constraint now throws an exception if a parameter is
26 not supplied (t0m).
27 - added docs & test for this (t0m)
28
0d87d86c 290.55_01 Wed August 20, 2008
b3a7e860 30
31 !! Calling Moose::init_meta as a function is now !!
32 !! deprecated. Please see the Moose.pm docs for details. !!
33
c7a43a7a 34 * Moose::Meta::Method::Constructor
35 - Fix inlined constructor so that values produced by default
b3a7e860 36 or builder methods are coerced as required. (t0m)
37 - added test for this (t0m)
c7a43a7a 38
f92cd300 39 * Moose::Meta::Attribute
b3a7e860 40 - A lazy attribute with a default or builder did not attempt to
41 coerce the default value. The immutable code _did_
42 coerce. (t0m)
43 - added test for this (t0m)
f92cd300 44
5e6c2b88 45 * Moose::Exporter
46 - This is a new helper module for writing "Moose-alike"
47 modules. This should make the lives of MooseX module authors
48 much easier. (Dave Rolsky)
49
ce265cc3 50 * Moose
d190db8b 51 * Moose::Cookbook::Meta::Recipe5
52 - Implemented metaclass traits (and wrote a recipe for it):
d5c18ef0 53
54 use Moose -traits => 'Foo'
55
56 This should make writing small Moose extensions a little
57 easier (Dave Rolsky)
58
b3a7e860 59 * Moose::Cookbook::Basics::Recipe1
60 - Removed any examples of direct hashref access, and applied an
61 editorial axe to reduce verbosity. (Dave Rolsky)
62
63 * Moose::Cookbook::Basics::Recipe1
64 - Also applied an editorial axe here. (Dave Rolsky)
65
d5c18ef0 66 * Moose
3e1e774e 67 * Moose::Cookbook::Extending::Recipe1
ce265cc3 68 * Moose::Cookbook::Extending::Recipe2
3e1e774e 69 - Rewrote extending and embedding moose documentation and
70 recipes to use Moose::Exporter (Dave Rolsky)
71
7ff56534 72 * Moose
3e1e774e 73 * Moose::Role
74 - These two modules now warn when you load them from the main
75 package "main" package, because we will not export sugar to
76 main. Previously it just did nothing. (Dave Rolsky)
7ff56534 77
b3a7e860 78 * Moose::Role
79 - Now provide an init_meta method just like Moose.pm, and you
80 can call this to provide an alternate role metaclass. (Dave
81 Rolsky and nothingmuch)
4f136178 82 - get_method_map now respects the package cache flag (nothingmuch)
b3a7e860 83
84 * Moose::Meta::Role
85 - Two new methods - add_method and wrap_method_body
86 (nothingmuch)
87
88 * many modules
89 - Optimizations including allowing constructors to accept hash
90 refs, making many more classes immutable, and making
91 constructors immutable. (nothingmuch)
92
7e8c0685 930.55 Sun August 3, 2008
330dbb07 94 * Moose::Meta::Attribute
7e8c0685 95 - breaking down the way 'handles' methods are
96 created so that the process can be more easily
330dbb07 97 overridden by subclasses (stevan)
98
d5598ade 99 * Moose::Meta::TypeConstraint
7e8c0685 100 - fixing what is passed into a ->message with
d5598ade 101 the type constraints (RT #37569)
102 - added tests for this (Charles Alderman)
103
470b518a 104 * Moose::Util::TypeConstraints
7e8c0685 105 - fix coerce to accept anon types like subtype can (mst)
470b518a 106
021b8139 107 * Moose::Cookbook
f254fa03 108 - reorganized the recipes into sections - Basics, Roles, Meta,
109 Extending - and wrote abstracts for each section (Dave Rolsky)
110
111 * Moose::Cookbook::Basics::Recipe10
112 - A new recipe that demonstrates operator overloading
113 in combination with Moose. (bluefeet)
021b8139 114
7c36d1d5 115 * Moose::Cookbook::Meta::Recipe1
116 - an introduction to what meta is and why you'd want to make
117 your own metaclass extensions (Dave Rolsky)
118
f254fa03 119 * Moose::Cookbook::Meta::Recipe4
120 - a very simple metaclass example (Dave Rolsky)
121
d5e84b86 122 * Moose::Cookbook::Extending::Recipe1
123 - how to write a Moose-alike module to use your own object base
124 class (Dave Rolsky)
125
f254fa03 126 * Moose::Cookbook::Extending::Recipe2
127 - how to write modules with an API just like C<Moose.pm> (Dave
128 Rolsky)
c2a0627f 129
7e8c0685 130 * all documentation
131 - Tons of fixes, both syntactical and grammatical (Dave
132 Rolsky, Paul Fenwick)
133
713b0244 1340.54 Thurs. July 3, 2008
135 ... this is not my day today ...
136
137 * Moose::Meta::Attribute
138 - fixed legal_options_for_inheritance such that
139 clone_and_inherit options still works for
140 Class::MOP::Attribute objects and therefore
141 does not break MooseX::AttributeHelpers
142 (stevan)
93cc8330 143
6d20aa6d 1440.53 Thurs. July 3, 2008
145 * Whoops, I guess I should run 'make manifest' before
146 actually releasing the module. No actual changes
147 in this release, except the fact that it includes
148 the changes that I didn't include in the last
149 release. (stevan--)
03e7dbec 150
68b6146c 1510.52 Thurs. July 3, 2008
47b19570 152 * Moose
153 - added "FEATURE REQUESTS" section to the Moose docs
977a86ba 154 to properly direct people (stevan) (RT #34333)
155 - making 'extends' croak if it is passed a Role since
156 this is not ever something you want to do
157 (fixed by stevan, found by obra)
158 - added tests for this (stevan)
19fabdd3 159
68b6146c 160 * Moose::Object
161 - adding support for DOES (as in UNIVERSAL::DOES)
162 (nothingmuch)
163 - added test for this
164
165 * Moose::Meta::Attribute
166 - added legal_options_for_inheritance (wreis)
167 - added tests for this (wreis)
168
169 * Moose::Cookbook::Snacks::*
170 - removed some of the unfinished snacks that should
171 not have been released yet. Added some more examples
172 to the 'Keywords' snack. (stevan)
173
47b19570 174 * Moose::Cookbook::Style
175 - added general Moose "style guide" of sorts to the
176 cookbook (nothingmuch) (RT #34335)
19fabdd3 177
977a86ba 178 * t/
179 - added more BUILDARGS tests (stevan)
180
07b0f1a5 1810.51 Thurs. Jun 26, 2008
d31f9614 182 * Moose::Role
0db4f1d7 183 - add unimport so "no Moose::Role" actually does
184 something (sartak)
185
db9476b1 186 * Moose::Meta::Role::Application::ToRole
187 - when RoleA did RoleB, and RoleA aliased a method from RoleB in
188 order to provide its own implementation, that method still got
189 added to the list of required methods for consumers of
190 RoleB. Now an aliased method is only added to the list of
191 required methods if the role doing the aliasing does not
192 provide its own implementation. See Recipe 11 for an example
6164d955 193 of all this. (Dave Rolsky)
db9476b1 194 - added tests for this
0db4f1d7 195
93e98578 196 * Moose::Meta::Method::Constructor
197 - when a single argument that wasn't a hashref was provided to
198 an immutabilized constructor, the error message was very
199 unhelpful, as opposed to the non-immutable error. Reported by
6164d955 200 dew. (Dave Rolsky)
201 - added test for this (Dave Rolsky)
d31f9614 202
0db4f1d7 203 * Moose::Meta::Attribute
204 - added support for meta_attr->does("ShortAlias") (sartak)
205 - added tests for this (sartak)
17ee2ee0 206 - moved the bulk of the `handles` handling to the new
d3e7fe85 207 install_delegation method (Stevan)
0db4f1d7 208
209 * Moose::Object
210caeb6 210 - Added BUILDARGS, a new step in new()
211
0206f6d6 212 * Moose::Meta::Role::Application::RoleSummation
213 - fix typos no one ever sees (sartak)
0db4f1d7 214
17ee2ee0 215 * Moose::Util::TypeConstraints
216 * Moose::Meta::TypeConstraint
217 * Moose::Meta::TypeCoercion
218 - Attempt to work around the ??{ } vs. threads issue
47b19570 219 (not yet fixed)
17ee2ee0 220 - Some null_constraint optimizations
221
eaa35e6e 2220.50 Thurs. Jun 11, 2008
223 - Fixed a version number issue by bumping all modules
224 to 0.50.
225
4cf89c74 2260.49 Thurs. Jun 11, 2008
eaa35e6e 227 !! This version now approx. 20-25% !!
228 !! faster with new Class::MOP 0.59 !!
229
21f1e231 230 * Moose::Meta::Attribute
231 - fixed how the is => (ro|rw) works with
232 custom defined reader, writer and accessor
233 options.
234 - added docs for this (TODO).
235 - added tests for this (Thanks to Penfold)
236 - added the custom attribute alias for regular
237 Moose attributes which is "Moose"
09b8cb41 238 - fix builder and default both being used
239 (groditi)
21f1e231 240
241 * Moose
242 Moose::Meta::Class
243 Moose::Meta::Attribute
244 Moose::Meta::Role
245 Moose::Meta::Role::Composite
246 Moose::Util::TypeConstraints
f93f7be9 247 - switched usage of reftype to ref because
248 it is much faster
249
8371f6e1 250 * Moose::Meta::Role
251 - changing add_package_symbol to use the new
252 HASH ref form
253
f93f7be9 254 * Moose::Object
255 - fixed how DEMOLISHALL is called so that it
256 can be overrided in subclasses (thanks to Sartak)
257 - added test for this (thanks to Sartak)
21f1e231 258
e151db23 259 * Moose::Util::TypeConstraints
260 - move the ClassName type check code to
261 Class::MOP::is_class_loaded (thanks to Sartak)
262
09b8cb41 263 * Moose::Cookbook::Recipe11
264 - add tests for this (thanks to tokuhirom)
265
695d1c68 2660.48 Thurs. May 29, 2008
267 (early morning release engineering)--
268
269 - fixing the version in Moose::Meta::Method::Destructor
270 which was causing the indexer to choke
271
2391ba89 2720.47 Thurs. May 29, 2008
273 (late night release engineering)--
274
275 - fixing the version is META.yml, no functional
276 changes in this release
277
bd364604 2780.46 Wed. May 28, 2008
279 !! This version now approx. 20-25% !!
280 !! faster with new Class::MOP 0.57 !!
281
282 * Moose::Meta::Class
283 - some optimizations of the &initialize method
284 since it is called so often by &meta
285
0addec44 286 * Moose::Meta::Class
287 Moose::Meta::Role
288 - now use the get_all_package_symbols from the
289 updated Class::MOP, test suite is now 10 seconds
290 faster
d3308256 291
292 * Moose::Meta::Method::Destructor
bd364604 293 - is_needed can now also be called as a class
294 method for immutablization to check if the
295 destructor object even needs to be created
296 at all
297
298 * Moose::Meta::Method::Destructor
d3308256 299 Moose::Meta::Method::Constructor
300 - added more descriptive error message to help
301 keep people from wasting time tracking an error
302 that is easily fixed by upgrading.
0addec44 303
c998012c 3040.45 Saturday, May 24, 2008
1b2aea39 305 * Moose
306 - Because of work in Class::MOP 0.56, all
307 XS based functionality is now optional
308 and a Pure Perl version is supplied
309 - the CLASS_MOP_NO_XS environment variable
310 can now be used to force non-XS versions
311 to always be used
312 - several of the packages have been tweaked
313 to take care of this, mostly we added
314 support for the package_name and name
315 variables in all the Method metaclasses
408f2665 316 - before/around/after method modifiers now
317 support regexp matching of names
318 (thanks to Takatoshi Kitano)
319 - tests added for this
088f372b 320 - NOTE: this only works for classes, it
321 is currently not supported in roles,
322 but, ... patches welcome
b8926b8c 323 - All usage of Carp::confess have been replaced
324 by Carp::croak in the "keyword" functions since
325 the stack trace is usually not helpful
326
327 * Moose::Role
328 - All usage of Carp::confess have been replaced
329 by Carp::croak in the "keyword" functions since
330 the stack trace is usually not helpful
331 - The 'has' keyword for roles now accepts the
332 same array ref form that Moose.pm does
333 (has [qw/foo bar/] => (is => 'rw', ...))
334 - added test for this
335
0b7df53c 336 * Moose::Meta::Attribute
337 - trigger on a ro-attribute is no longer an
338 error, as it's useful to trigger off of the
339 constructor
340
8453c358 341 * Moose::Meta::Class
342 - added same 'add_package_symbol' fix as in
343 Class::MOP 0.56
344
345 * Moose::Util
346 - does_role now handles non-Moose classes
347 more gracefully
348 - added tests for this
408f2665 349 - added the 'add_method_modifier' function
350 (thanks to Takatoshi Kitano)
8453c358 351
a84a89ba 352 * Moose::Util::TypeConstraints
353 - subtypes of parameterizable types now are
354 themselves parameterizable types
355
1b55c340 356 * Moose::Meta::Method::Constructor
357 - fixed bug where trigger was not being
358 called by the inlined immutable
359 constructors
360 - added test for this (thanks to Caelum)
361
362 * Moose::Meta::Role::Application::ToInstance
363 - now uses the metaclass of the instance
364 (if possible) to create the anon-class
365 (thanks Jonathan Rockway)
366
b8926b8c 367 * Moose::Cookbook::Recipe22
368 - added the meta-attribute trait recipe
369 (thanks to Sartak)
370
1b55c340 371 * t/
372 - fixed hash-ordering test bug that was
b8926b8c 373 causing occasional cpantester failures
374 - renamed the t/000_recipe/*.t tests to be
375 more descriptive (thanks to Sartak)
1b55c340 376
3a0c064a 3770.44 Sat. May 10, 2008
c0b37457 378 * Moose
3a0c064a 379 - made make_immutable warning cluck to
ca0e380d 380 show where the error is (thanks mst)
3a0c064a 381
382 * Moose::Object
383 - BUILDALL and DEMOLISHALL now call
384 ->body when looping through the
385 methods, to avoid the overloaded
386 method call.
ca0e380d 387 - fixed issue where DEMOLISHALL was
388 eating the $@ values, and so not
389 working correctly, it still kind of
390 eats them, but so does vanilla perl
391 - added tests for this
3a0c064a 392
ceb8945d 393 * Moose::Cookbook::Recipe7
3a0c064a 394 - added new recipe for immutable
395 functionality (thanks Dave Rolsky)
396
ceb8945d 397 * Moose::Cookbook::Recipe9
3a0c064a 398 - added new recipe for builder and
399 lazy_build (thanks Dave Rolsky)
400
37332f31 401 * Moose::Cookbook::Recipe11
3a0c064a 402 - added new recipe for method aliasing
403 and exclusion with Roles (thanks Dave Rolsky)
404
405 * t/
ca0e380d 406 - fixed Win32 test failure (thanks spicyjack)
ceb8945d 407
1a28289d 408 ~ removed Build.PL and Module::Build compat
409 since Module::Install has done that.
410
27cabcda 4110.43 Wed. April, 30, 2008
cbd141ca 412 * NOTE TO SELF:
413 drink more coffee before
414 doing release engineering
415
416 - whoops, forgot to do the smolder tests,
417 and we broke some of the custom meta-attr
418 modules. This fixes that.
419
c93e8e7d 4200.42 Mon. April 28, 2008
421 - some bad tests slipped by, nothing else
422 changed in this release (cpantesters++)
423
424 - upped the Class::MOP dependency to 0.55
425 since we have tests which need the C3
426 support
427
a5e883ae 4280.41 Mon. April 28, 2008
004222dc 429 ~~ numerous documentation updates ~~
547dda77 430
431 - Changed all usage of die to Carp::croak for better
432 error reporting (initial patch by Tod Hagan)
004222dc 433
c2922d69 434 ** IMPORTANT NOTE **
435 - the make_immutable keyword is now deprecated, don't
436 use it in any new code and please fix your old code
437 as well. There will be 2 releases, and then it will
438 be removed.
439
6c36eeaa 440 * Moose
441 Moose::Role
442 Moose::Meta::Class
443 - refactored the way inner and super work to avoid
444 any method/@ISA cache penalty (nothingmuch)
445
4078709c 446 * Moose::Meta::Class
447 - fixing &new_object to make sure trigger gets the
448 coerced value (spotted by Charles Alderman on the
449 mailing list)
450 - added test for this
451
51c107ef 452 * Moose::Meta::Method::Constructor
453 - immutable classes which had non-lazy attributes were calling
454 the default generating sub twice in the constructor. (bug
455 found by Jesse Luehrs, fixed by Dave Rolsky)
456 - added tests for this (Dave Rolsky)
ae8d63f2 457 - fix typo in initialize_body method (nothingmuch)
458
459 * Moose::Meta::Method::Destructor
460 - fix typo in initialize_body method (nothingmuch)
51c107ef 461
6c36eeaa 462 * Moose::Meta::Method::Overriden
463 Moose::Meta::Method::Augmented
464 - moved the logic for these into their own
465 classes (nothingmuch)
466
5e98d2b6 467 * Moose::Meta::Attribute
aed87761 468 - inherited attributes may now be extended without
2ea379cb 469 restriction on the type ('isa', 'does') (Sartak)
cf12a691 470 - added tests for this (Sartak)
547dda77 471 - when an attribute property is malformed (such as lazy without
472 a default), give the name of the attribute in the error
473 message (Sartak)
88f23977 474 - added the &applied_traits and &has_applied_traits methods
475 to allow introspection of traits
476 - added tests for this
37905a64 477 - moved 'trait' and 'metaclass' argument handling to here from
478 Moose::Meta::Class
479 - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
480 '+foo' syntax) (nothingmuch)
481 - added tests for this (t0m)
7c60f730 482
483 * Moose::Object
484 - localize $@ inside DEMOLISHALL to avoid it
485 eating $@ (found by Ernesto)
486 - added test for this (thanks to Ernesto)
cf12a691 487
ae8d63f2 488 * Moose::Util::TypeConstraints
489 - &find_type_constraint now DWIMs when given an
6c36eeaa 490 type constraint object or name (nothingmuch)
37905a64 491 - &find_or_create_type_constraint superseded with a number of more
492 specific functions:
493 - find_or_create_{isa,does}_type_constraint
494 - find_or_parse_type_constraint
ae8d63f2 495
496 * Moose::Meta::TypeConstraint
4078709c 497 Moose::Meta::TypeConstraint::Class
37905a64 498 Moose::Meta::TypeConstraint::Role
4078709c 499 Moose::Meta::TypeConstraint::Enum
500 Moose::Meta::TypeConstraint::Union
501 Moose::Meta::TypeConstraint::Parameterized
502 - added the &equals method for comparing two type
503 constraints (nothingmuch)
504 - added tests for this (nothingmuch)
505
506 * Moose::Meta::TypeConstraint
ae8d63f2 507 - add the &parents method, which is just an alias to &parent.
37905a64 508 Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
ae8d63f2 509
510 * Moose::Meta::TypeConstraint::Class
ae8d63f2 511 - added the class attribute for introspection purposes
512 (nothingmuch)
513 - added tests for this
4078709c 514
515 * Moose::Meta::TypeConstraint::Enum
6c36eeaa 516 Moose::Meta::TypeConstraint::Role
37905a64 517 - broke these out into their own classes (nothingmuch)
ae8d63f2 518
519 * Moose::Cookbook::Recipe*
520 - fixed references to test file locations in the POD
521 and updated up some text for new Moose features
37905a64 522 (Sartak)
523
524 * Moose::Util
525 - Added &resolve_metaclass_alias, a helper function for finding an actual
526 class for a short name (e.g. in the traits list)
ae8d63f2 527
52338af5 5280.40 Fri. March 14, 2008
6e2840b7 529 - I hate Pod::Coverage
530
e0328ed4 5310.39 Fri. March 14, 2008
8d62bf6d 532 * Moose
533 - documenting the use of '+name' with attributes
534 that come from recently composed roles. It makes
535 sense, people are using it, and so why not just
536 officially support it.
9c10b5ad 537 - fixing the 'extends' keyword so that it will not
538 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
94075501 539
1321f087 540 * oose
541 - added the perl -Moose=+Class::Name feature to allow
542 monkeypatching of classes in one liners
543
9c10b5ad 544 * Moose::Util
545 - fixing the 'apply_all_roles' keyword so that it will not
546 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
8d62bf6d 547
48045612 548 * Moose::Meta::Class
549 - added ->create method which now supports roles (thanks to jrockway)
550 - added tests for this
6d5cbd2b 551 - added ->create_anon_class which now supports roles and caching of
552 the results (thanks to jrockway)
553 - added tests for this
81c3738f 554 - made ->does_role a little more forgiving when it is
555 checking a Class::MOP era metaclasses.
48045612 556
94075501 557 * Moose::Meta::Role::Application::ToInstance
558 - it is now possible to pass extra params to be used when
559 a role is applied to an the instance (rebless_params)
560 - added tests for this
561
9f4334a1 562 * Moose::Util::TypeConstraints
4ab662d6 563 - class_type now accepts an optional second argument for a
564 custom message. POD anotated accordingly (groditi)
565 - added tests for this
9f4334a1 566 - it is now possible to make anon-enums by passing 'enum' an
567 ARRAY ref instead of the $name => @values. Everything else
568 works as before.
569 - added tests for this
570
8d62bf6d 571 * t/
572 - making test for using '+name' on attributes consumed
573 from a role, it works and makes sense too.
574
80d955e4 575 * Moose::Meta::Attribute
576 - fix handles so that it doesn't return nothing
577 when the method cannot be found, not sure why
f4f3e701 578 it ever did this originally, this means we now
579 have slightly better support for AUTOLOADed
580 objects
581 - added more delegation tests
587e457d 582 - adding ->does method to this so as to better
583 support traits and their introspection.
584 - added tests for this
1a386a6c 585
586 * Moose::Object
587 - localizing the Data::Dumper configurations so
588 that it does not pollute others (RT #33509)
9b1aa0c3 589 - made ->does a little more forgiving when it is
590 passed Class::MOP era metaclasses.
80d955e4 591
5920.38 Fri. Feb. 15, 2008
c3b81505 593 * Moose::Meta::Attribute
594 - fixed initializer to correctly do
595 type checking and coercion in the
596 callback
597 - added tests for this
598
1a740d8a 599 * t/
600 - fixed some finicky tests (thanks to konobi)
601
80d955e4 6020.37 Thurs. Feb. 14, 2008
688fcdda 603 * Moose
604 - fixed some details in Moose::init_meta
605 and its superclass handling (thanks thepler)
606 - added tests for this (thanks thepler)
a28fe77b 607 - 'has' now dies if you don't pass in name
608 value pairs
2a5e59d0 609 - added the 'make_immutable' keyword as a shortcut
9df136d0 610 to make_immutable
688fcdda 611
612 * Moose::Meta::Class
613 Moose::Meta::Method::Constructor
614 Moose::Meta::Attribute
649b9340 615 - making (init_arg => undef) work here too
616 (thanks to nothingmuch)
be771c43 617
618 * Moose::Meta::Attribute
619 Moose::Meta::Method::Constructor
620 Moose::Meta::Method::Accessor
5fec9b97 621 - make lazy attributes respect attr initializers (rjbs)
be771c43 622 - added tests for this
688fcdda 623
624 * Moose::Util::TypeConstraints
625 Moose::Util::TypeConstraints::OptimizedConstraints
c14746bc 626 Moose::Meta::TypeConstraints
688fcdda 627 Moose::Meta::Attribute
628 Moose::Meta::Method::Constructor
629 Moose::Meta::Method::Accessor
649b9340 630 - making type errors use the
631 assigned message (thanks to Sartak)
632 - added tests for this
633
634 * Moose::Meta::Method::Destructor
635 - making sure DESTROY gets inlined properly
636 with successive DEMOLISH calls (thanks to manito)
688fcdda 637
ab76842e 638 * Moose::Meta::Attribute
639 Moose::Meta::Method::Accessor
640 - fixed handling of undef with type constraints
641 (thanks to Ernesto)
642 - added tests for this
c14746bc 643
644 * Moose::Util
645 - added &get_all_init_args and &get_all_attribute_values
646 (thanks to Sartak and nothingmuch)
ab76842e 647
e472c9a5 6480.36 Sat. Jan. 26, 2008
238b424d 649 * Moose::Role
650 Moose::Meta::Attribute
651 - role type tests now support when roles are
652 applied to non-Moose classes (found by ash)
653 - added tests for this (thanks to ash)
e472c9a5 654 - couple extra tests to boost code coverage
238b424d 655
656 * Moose::Meta::Method::Constructor
657 - improved fix for handling Class::MOP attributes
658 - added test for this
659
660 * Moose::Meta::Class
661 - handled the add_attribute($attribute_meta_object)
662 case correctly
663 - added test for this
664
3285fae9 6650.35 Tues. Jan. 22, 2008
45fd4af3 666 * Moose::Meta::Method::Constructor
667 - fix to make sure even Class::MOP attributes
472b7401 668 are handled correctly (Thanks to Dave Rolsky)
c3b35392 669 - added test for this (also Dave Rolsky)
4498537c 670
671 * Moose::Meta::Class
672 - improved error message on _apply_all_roles,
673 you should now use Moose::Util::apply_all_roles
674 and you shouldnt have been using a _ prefixed
675 method in the first place ;)
45fd4af3 676
fe05ce9c 6770.34 Mon. Jan. 21, 2008
778db3ac 678 ~~~ more misc. doc. fixes ~~~
679 ~~ updated copyright dates ~~
9b28d20b 680
681 Moose is now a postmodern object system :)
8bdc7f13 682 - (see the POD for details)
ccf49e80 683
684 * <<Role System Refactoring>>
685 - this release contains a major reworking and
686 cleanup of the role system
9b28d20b 687 - 100% backwards compat.
688 - Role application now restructured into seperate
689 classes based on type of applicants
690 - Role summation (combining of more than one role)
ccf49e80 691 is much cleaner and anon-classes are no longer
9b28d20b 692 used in this process
ccf49e80 693 - new Composite role metaclass
9b28d20b 694 - runtime application of roles to instances
695 is now more efficient and re-uses generated
696 classes when applicable
ccf49e80 697
9b28d20b 698 * <<New Role composition features>>
ccf49e80 699 - methods can now be excluded from a given role
9b28d20b 700 during composition
ccf49e80 701 - methods can now be aliased to another name (and
702 still retain the original as well)
4734114b 703
704 * Moose::Util::TypeConstraints::OptimizedConstraints
705 - added this module (see above)
706
d7d8a8c7 707 * Moose::Meta::Class
708 - fixed the &_process_attribute method to be called
4734114b 709 by &add_attribute, so that the API is now correct
710
e7c06c1e 711 * Moose::Meta::Method::Accessor
4734114b 712 - fixed bug when passing a list of values to
e7c06c1e 713 an accessor would get (incorrectly) ignored.
714 Thanks to Sartak for finding this ;)
715 - added tests for this (Sartak again)
32dd4a95 716
a4e516f6 717 * Moose::Meta::Method::Accessor
718 Moose::Meta::Method::Constructor
28412c0b 719 Moose::Meta::Attribute
ccf49e80 720 Moose::Meta::TypeConstraint
721 Moose::Meta::TypeCoercion
722 - lots of cleanup of such things as:
28412c0b 723 - generated methods
724 - type constraint handling
ccf49e80 725 - error handling/messages
726 (thanks to nothingmuch)
a4e516f6 727
4734114b 728 * Moose::Meta::TypeConstraint::Parameterizable
729 - added this module to support the refactor
730 in Moose::Meta::TypeConstraint::Parameterized
731
732 * Moose::Meta::TypeConstraint::Parameterized
733 - refactored how these types are handled so they
734 are more generic and not confined to ArrayRef
735 and HashRef only
a4e516f6 736
2de7e794 737 * t/
738 - shortened some file names for better VMS support (RT #32381)
739
25374f01 7400.33 Fri. Dec. 14, 2007
32dd4a95 741 !! Moose now loads 2 x faster !!
742 !! with new Class::MOP 0.49 !!
25374f01 743
f7865ec8 744 ++ new oose.pm module to make command line
25374f01 745 Moose-ness easier (see POD docs for more)
4734114b 746
25374f01 747 * Moose::Meta::Class
748 * Moose::Meta::Role
4734114b 749 - several tweaks to take advantage of the
25374f01 750 new method map caching in Class::MOP
751
39aba5c9 752 * Moose::Meta::TypeConstraint::Parameterized
753 - allow subtypes of ArrayRef and HashRef to
acb8a5db 754 be used as a container (sartak)
4734114b 755 - added tests for this
acb8a5db 756 - basic support for coercion to ArrayRef and
757 HashRef for containers (sartak)
4734114b 758 - added tests for this
759
25374f01 760 * Moose::Meta::TypeCoercion
761 - coercions will now create subtypes as needed
762 so you can now add coercions to parameterized
763 types without having to explictly define them
764 - added tests for this
765
ac211120 766 * Moose::Meta::Method::Accessor
767 - allow subclasses to decide whether we need
768 to copy the value into a new variable (sartak)
39aba5c9 769
dc26a424 7700.32 Tues. Dec. 4, 2007
8de73ff1 771 * Moose::Util::TypeConstraints
772 - fixing how subtype aliases of unions work
773 they should inherit the parent's coercion
774 - added tests for this
4734114b 775 - you can now define multiple coercions on
41e007e4 776 a single type at different times instead of
777 having to do it all in one place
778 - added tests for this
4734114b 779
8de73ff1 780 * Moose::Meta::TypeConstraint
781 - there is now a default constraint of sub { 1 }
782 instead of Moose::Util::TypeConstraints setting
783 this for us
784
4734114b 785 * Moose::Meta::TypeCoercion
786 * Moose::Meta::TypeCoercion::Union
787 - added the &has_coercion_for_type and
788 &add_type_coercions methods to support the
41e007e4 789 new features above (although you cannot add
790 more type coercions for Union types)
791
ffcb48b4 7920.31 Mon. Nov. 26, 2007
f3c4e20e 793 * Moose::Meta::Attribute
4734114b 794 - made the +attr syntax handle extending types with
f3c4e20e 795 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
796 now works if the original foo is an ArrayRef.
797 - added tests for this.
798 - delegation now works even if the attribute does not
799 have a reader method using the get_read_method_ref
4734114b 800 method from Class::MOP::Attribute.
f3c4e20e 801 - added tests for this
802 - added docs for this
4734114b 803
f3c4e20e 804 * Moose::Util::TypeConstraints
4734114b 805 - passing no "additional attribute info" to
806 &find_or_create_type_constraint will no longer
807 attempt to create an __ANON__ type for you,
f3c4e20e 808 instead it will just return undef.
809 - added docs for this
810
1edfdf1c 8110.30 Fri. Nov. 23, 2007
ca168e89 812 * Moose::Meta::Method::Constructor
813 -builder related bug in inlined constructor. (groditi)
814
3822d5ee 815 * Moose::Meta::Method::Accessor
816 - genereate unnecessary calls to predicates and refactor
817 code generation for runtime speed (groditi)
818
5d776bdf 819 * Moose::Util::TypeConstraints
0e0709ea 820 - fix ClassName constraint to introspect symbol table (mst)
a0f8153d 821 - added more tests for this (mst)
822 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
823 with work correctly.
824 - added tests for this
5d776bdf 825
1edfdf1c 826 * Moose::Cookbook
827 - adding the link to Recipie 11 (written by Sartak)
828 - adding test for SYNOPSIS code
829
4734114b 830 * t/
ca168e89 831 - New tests for builder bug. Upon instantiation, if an
832 attribute had a builder, no value and was not lazy the
833 builder default was not getting run, oops. (groditi)
834
b97b9655 8350.29 Tues. Nov. 13, 2007
0b26305c 836 * Moose::Meta::Attribute
5d776bdf 837 - Fix error message on missing builder method (groditi)
0b26305c 838
839 * Moose::Meta::Method::Accessor
5d776bdf 840 - Fix error message on missing builder method (groditi)
0b26305c 841
4734114b 842 * t/
5d776bdf 843 - Add test to check for the correct error message when
844 builder method is missing (groditi)
0b26305c 845
98c4c382 8460.28 Tues. Nov. 13, 2007
4734114b 847 - 0.27 packaged incorrectly (groditi)
98c4c382 848
e134cd19 8490.27 Tues. Nov. 13, 2007
26fbace8 850 * Moose::Meta::Attribute
851 - Added support for the new builder option (groditi)
6af1a927 852 - Added support for lazy_build option (groditi)
1ed0b94f 853 - Changed slot initialization for predicate changes (groditi)
26fbace8 854
855 * Moose::Meta::Method::Accessor
6af1a927 856 - Added support for lazy_build option (groditi)
4734114b 857 - Fix inline methods to work with corrected predicate
28669f89 858 behavior (groditi)
26fbace8 859
7a5b07b3 860 * Moose::Meta::Method::Constructor
861 - Added support for lazy_build option (groditi)
862
26fbace8 863 * t/
28669f89 864 - tests for builder and lazy_build (groditi)
26fbace8 865
4734114b 866 * fixing some misc. bits in the docs that
28669f89 867 got mentioned on CPAN Forum & perlmonks
4734114b 868
e7f8d0c2 869 * Moose::Meta::Role
4734114b 870 - fixed how required methods are handled
e7f8d0c2 871 when they encounter overriden or modified
872 methods from a class (thanks to confound).
873 - added tests for this
5af6a16d 874
3796382a 875 * Moose::Util::TypeConstraint
4734114b 876 - fixed the type notation parser so that
877 the | always creates a union and so is
878 no longer a valid type char (thanks to
879 konobi, mugwump and #moose for working
3796382a 880 this one out.)
881 - added more tests for this
882
77a18c28 8830.26 Thurs. Sept. 27, 2007
884 == New Features ==
4734114b 885
77a18c28 886 * Parameterized Types
4734114b 887 We now support parameterized collection types, such as:
77a18c28 888 ArrayRef[Int] # array or integers
889 HashRef[Object] # a hash with object values
890 They can also be nested:
891 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
892 And work with the type unions as well:
893 ArrayRef[Int | Str] # array of integers of strings
4734114b 894
77a18c28 895 * Better Framework Extendability
4734114b 896 Moose.pm is now "extendable" such that it is now much
897 easier to extend the framework and add your own keywords
77a18c28 898 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
899 section of the Moose.pm docs.
4734114b 900
77a18c28 901 * Moose Snacks!
4734114b 902 In an effort to begin documenting some of the various
903 details of Moose as well as some common idioms, we have
904 created Moose::Cookbook::Snacks as a place to find
77a18c28 905 small (easily digestable) nuggets of Moose code.
4734114b 906
77a18c28 907 ====
fb697a87 908 ~ Several doc updates/cleanup thanks to castaway ~
4734114b 909
910 - converted build system to use Module::Install instead of
e46f5cc2 911 Module::Build (thanks to jrockway)
fb697a87 912
d67145ed 913 * Moose
4734114b 914 - added all the meta classes to the immutable list and
d67145ed 915 set it to inline the accessors
4734114b 916 - fix import to allow Sub::Exporter like { into => }
e59a5c29 917 and { into_level => } (perigrin)
4734114b 918 - exposed and documented init_meta() to allow better
e59a5c29 919 embedding and extending of Moose (perigrin)
4734114b 920
e59a5c29 921 * t/
922 - complete re-organization of the test suite
4734114b 923 - added some new tests as well
77a18c28 924 - finally re-enabled the Moose::POOP test since
925 the new version of DBM::Deep now works again
926 (thanks rob)
b468a3d3 927
928 * Moose::Meta::Class
4734114b 929 - fixed very odd and very nasty recursion bug with
b468a3d3 930 inner/augment (mst)
931 - added tests for this (eilara)
d67145ed 932
3726f905 933 * Moose::Meta::Attribute
934 Moose::Meta::Method::Constructor
935 Moose::Meta::Method::Accessor
4734114b 936 - fixed issue with overload::Overloaded getting called
f1917f58 937 on non-blessed items. (RT #29269)
3726f905 938 - added tests for this
4734114b 939
3ccdc84a 940 * Moose::Meta::Method::Accessor
4734114b 941 - fixed issue with generated accessor code making
3ccdc84a 942 assumptions about hash based classes (thanks to dexter)
4734114b 943
3726f905 944 * Moose::Coookbook::Snacks
4734114b 945 - these are bits of documentation, not quite as big as
946 Recipes but which have no clear place in the module docs.
3726f905 947 So they are Snacks! (horray for castaway++)
948
07cde929 949 * Moose::Cookbook::Recipe4
950 - updated it to use the new ArrayRef[MyType] construct
951 - updated the accompanying test as well
952
3726f905 953 +++ Major Refactor of the Type Constraint system +++
954 +++ with new features added as well +++
955
22aed3c0 956 * Moose::Util::TypeConstraint
4734114b 957 - no longer uses package variable to keep track of
22aed3c0 958 the type constraints, now uses the an instance of
959 Moose::Meta::TypeConstraint::Registry to do it
f1917f58 960 - added more sophisticated type notation parsing
961 (thanks to mugwump)
962 - added tests for this
22aed3c0 963
d67145ed 964 * Moose::Meta::TypeConstraint
965 - some minor adjustments to make subclassing easier
4734114b 966 - added the package_defined_in attribute so that we
22aed3c0 967 can track where the type constraints are created
4734114b 968
d67145ed 969 * Moose::Meta::TypeConstraint::Union
4734114b 970 - this is now been refactored to be a subclass of
3726f905 971 Moose::Meta::TypeConstraint
4734114b 972
3726f905 973 * Moose::Meta::TypeCoercion::Union
974 - this has been added to service the newly refactored
4734114b 975 Moose::Meta::TypeConstraint::Union and is itself
3726f905 976 a subclass of Moose::Meta::TypeCoercion
4734114b 977
0fbd4b0a 978 * Moose::Meta::TypeConstraint::Parameterized
d67145ed 979 - added this module (taken from MooseX::AttributeHelpers)
980 to help construct nested collection types
981 - added tests for this
4734114b 982
22aed3c0 983 * Moose::Meta::TypeConstraint::Registry
984 - added this class to keep track of type constraints
d67145ed 985
887169d7 9860.25 Mon. Aug. 13, 2007
8eca434b 987 * Moose
4734114b 988 - Documentation update to reference Moose::Util::TypeConstraints
989 under 'isa' in 'has' for how to define a new type
8eca434b 990 (thanks to shlomif).
991
ab859145 992 * Moose::Meta::Attribute
4734114b 993 - required attributes now will no longer accept undef
ab859145 994 from the constructor, even if there is a default and lazy
995 - added tests for this
4734114b 996 - default subroutines must return a value which passes the
7a5ebc40 997 type constraint
998 - added tests for this
4734114b 999
a909a4df 1000 * Moose::Meta::Attribute
1001 * Moose::Meta::Method::Constructor
4734114b 1002 * Moose::Meta::Method::Accessor
a909a4df 1003 - type-constraint tests now handle overloaded objects correctly
1004 in the error message
4734114b 1005 - added tests for this (thanks to EvanCarroll)
ab859145 1006
8eca434b 1007 * Moose::Meta::TypeConstraint::Union
4734114b 1008 - added (has_)hand_optimized_constraint to this class so that
8eca434b 1009 it behaves as the regular Moose::Meta::TypeConstraint does.
1010
5868294f 1011 * Moose::Meta::Role
887169d7 1012 - large refactoring of this code
4734114b 1013 - added several more tests
1014 - tests for subtle conflict resolition issues
7125b244 1015 added, but not currently running
1016 (thanks to kolibre)
1017
4734114b 1018 * Moose::Cookbook::Recipe7
1019 - added new recipe for augment/inner functionality
887169d7 1020 (still in progress)
7125b244 1021 - added test for this
5868294f 1022
24a8fe99 1023 * Moose::Spec::Role
7125b244 1024 - a formal definition of roles (still in progress)
24a8fe99 1025
9a641848 1026 * Moose::Util
887169d7 1027 - utilities for easier working with Moose classes
7125b244 1028 - added tests for these
9a641848 1029
1030 * Test::Moose
887169d7 1031 - This contains Moose specific test functions
7125b244 1032 - added tests for these
9a641848 1033
6b4c1bdd 10340.24 Tues. July 3, 2007
1035 ~ Some doc updates/cleanup ~
c84f324f 1036
1037 * Moose::Meta::Attribute
4734114b 1038 - added support for roles to be given as parameters
c84f324f 1039 to the 'handles' option.
1040 - added tests and docs for this
4734114b 1041 - the has '+foo' attribute form now accepts changes to
83cc9094 1042 the lazy option, and the addition of a handles option
1043 (but not changing the handles option)
1044 - added tests and docs for this
c84f324f 1045
1db8ecc7 1046 * Moose::Meta::Role
1047 - required methods are now fetched using find_method_by_name
1048 so that required methods can come from superclasses
1049 - adjusted tests for this
1050
81941e9b 10510.23 Mon. June 18, 2007
73b84d2e 1052 * Moose::Meta::Method::Constructor
1053 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
ac2dc464 1054 * Moose::Meta::Class
1055 - Modify make_immutable to work with the new Class::MOP immutable
1056 mechanism + POD + very basic test (groditi)
cbe25729 1057 * Moose::Meta::Attribute
4734114b 1058 - Fix handles to use goto() so that caller() comes out properly on
cbe25729 1059 the other side (perigrin)
ac2dc464 1060
db53853c 10610.22 Thurs. May 31, 2007
3969267d 1062 * Moose::Util::TypeConstraints
4734114b 1063 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
db53853c 1064 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
1065 prototypes for functions
4734114b 1066 - added the ClassName type constraint, this checks for strings
1067 which will respond true to ->isa(UNIVERSAL).
9af1d28b 1068 - added tests and docs for this
4734114b 1069 - subtyping just in name now works correctly by making the
86629f93 1070 default for where be { 1 }
4734114b 1071 - added test for this
3969267d 1072
d7611a4a 1073 * Moose::Meta::Method::Accessor
4734114b 1074 - coerce and lazy now work together correctly, thanks to
d7611a4a 1075 merlyn for finding this bug
1076 - tests added for this
df492bba 1077 - fix reader presedence bug in Moose::Meta::Attribute + tests
d7611a4a 1078
86629f93 1079 * Moose::Object
1080 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
4734114b 1081 a HASH-ref and missed. This produces better error messages then
86629f93 1082 having it die cause undef is not a HASH.
1083 - added tests for this
1084
74a0a945 10850.21 Thursday, May 2nd, 2007
52c7c330 1086 * Moose
1087 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
1088 - modified unimport to remove super and inner along with the rest
1089 - altered unimport tests to handle this
1090
1091 * Moose::Role
1092 - altered super export to populate SUPER_SLOT
1093
1094 * Moose::Meta::Class
1095 - altered augment and override modifier application to use *_SLOT
1096 - modified tests for these to unimport one test class each to test
1097
492d4d76 1098 * Moose::Meta::Role
1099 - fixed issue where custom attribute metaclasses
1100 where not handled correctly in roles
1101 - added tests for this
4734114b 1102
5cb193ed 1103 * Moose::Meta::Class
4734114b 1104 - fixed issue where extending metaclasses with
5cb193ed 1105 roles would blow up. Thanks to Aankhen`` for
1106 finding this insidious error, and it's solution.
4734114b 1107
1108 ~~ lots of spelling and grammer fixes in the docs,
0305961b 1109 many many thanks to rlb3 and Aankhen for these :)
492d4d76 1110
e518dfb4 11110.20 Friday, April 6th, 2007
a60285b3 1112 >> I messed up the SKIP logic in one test
1113 so this release is just to fix that.
1114
93c435b3 1115 * Moose
1116 - 'has' now also accepts an ARRAY ref
1117 to create multiple attrs (see docs)
1118 (thanks to konobi for this)
4734114b 1119 - added tests and docs
93c435b3 1120
cd7eeaf5 11210.19 Thurs. April 5th, 2007
1122 ~~ More documentation updates ~~
1123
c899258b 1124 * Moose::Util::TypeConstraints
c1935ade 1125 - 'type' now supports messages as well
ddbdc0cb 1126 thanks to phaylon for finding this
c899258b 1127 - added tests for this
4734114b 1128 - added &list_all_type_constraints and
c1935ade 1129 &list_all_builtin_type_constraints
943596a6 1130 functions to facilitate introspection.
4734114b 1131
d022f632 1132 * Moose::Meta::Attribute
4734114b 1133 - fixed regexp 'handles' declarations
d022f632 1134 to build the list of delegated methods
4734114b 1135 correctly (and not override important
1136 things like &new) thanks to ashleyb
ddbdc0cb 1137 for finding this
1138 - added tests and docs for this
c1935ade 1139 - added the 'documentation' attributes
4734114b 1140 so that you can actually document your
1141 attributes and inspect them through the
ddbdc0cb 1142 meta-object.
d022f632 1143 - added tests and docs for this
1144
c1935ade 1145 * Moose::Meta::Class
1146 - when loading custom attribute metaclasses
4734114b 1147 it will first look in for the class in the
1148 Moose::Meta::Attribute::Custom::$name, and
c1935ade 1149 then default to just loading $name.
1150 - added tests and docs for this
1151
900466d6 1152 * Moose::Meta::TypeConstraint
1153 - type constraints now stringify to their names.
1154 - added test for this
1155
d022f632 1156 * misc.
4734114b 1157 - added tests to assure we work with Module::Refresh
1158 - added stricter test skip logic in the Moose POOP
ddbdc0cb 1159 test, ask Rob Kinyon why.
1160 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
c899258b 1161
af5199c6 11620.18 Sat. March 10, 2007
1163 ~~ Many, many documentation updates ~~
ddbdc0cb 1164
1165 * misc.
4734114b 1166 - We now use Class::MOP::load_class to
1167 load all classes.
1168 - added tests to show types and subtypes
ddbdc0cb 1169 working with Declare::Constraints::Simple
1170 and Test::Deep as constraint engines.
b77fdbed 1171
587ae0d2 11720.18_001
d01f1dab 1173 !! You must have Class::MOP 0.37_001 !!
1174 !! for this developer release to work !!
1175
734d1752 1176 This release was primarily adding the immutable
4734114b 1177 feature to Moose. An immutable class is one which
1178 you promise not to alter. When you set the class
1179 as immutable it will perform various bits of
734d1752 1180 memoization and inline certain part of the code
4734114b 1181 (constructors, destructors and accessors). This
734d1752 1182 minimizes (and in some cases totally eliminates)
4734114b 1183 one of Moose's biggest performance hits. This
734d1752 1184 feature is not on by default, and is 100% optional.
4734114b 1185 It has several configurable bits as well, so you
734d1752 1186 can pick and choose to your specific needs.
4734114b 1187
1188 The changes involved in this were fairly wide and
1189 highly specific, but 100% backwards compatible, so
1190 I am not going to enumerate them here. If you are
1191 truely interested in what was changed, please do
734d1752 1192 a diff :)
587ae0d2 1193
11940.17 Tues. Nov. 14, 2006
1195 * Moose::Meta::Method::Accessor
4734114b 1196 - bugfix for read-only accessors which
587ae0d2 1197 are have a type constraint and lazy.
1198 Thanks to chansen for finding it.
1199
12000.16 Tues. Nov. 14, 2006
1201 ++ NOTE ++
4734114b 1202 There are some speed improvements in this release,
587ae0d2 1203 but they are only the begining, so stay tuned.
4734114b 1204
587ae0d2 1205 * Moose::Object
4734114b 1206 - BUILDALL and DEMOLISHALL no longer get
587ae0d2 1207 called unless they actually need to be.
1208 This gave us a signifigant speed boost
4734114b 1209 for the cases when there is no BUILD or
587ae0d2 1210 DEMOLISH method present.
4734114b 1211
587ae0d2 1212 * Moose::Util::TypeConstraints
1213 * Moose::Meta::TypeConstraint
4734114b 1214 - added an 'optimize_as' option to the
587ae0d2 1215 type constraint, which allows for a
4734114b 1216 hand optimized version of the type
587ae0d2 1217 constraint to be used when possible.
1218 - Any internally created type constraints
1219 now provide an optimized version as well.
1220
ecb59493 12210.15 Sun. Nov. 5, 2006
946289d1 1222 ++ NOTE ++
4734114b 1223 This version of Moose *must* have Class::MOP 0.36 in order
1224 to work correctly. A number of small internal tweaks have
946289d1 1225 been made in order to be compatible with that release.
571dd39f 1226
1227 * Moose::Util::TypeConstraints
4734114b 1228 - added &unimport so that you can clean out
1229 your class namespace of these exported
571dd39f 1230 keywords
4734114b 1231
37ee30c9 1232 * Moose::Meta::Class
4734114b 1233 - fixed minor issue which occasionally
1234 comes up during global destruction
37ee30c9 1235 (thanks omega)
4734114b 1236 - moved Moose::Meta::Method::Overriden into
946289d1 1237 its own file.
4734114b 1238
1239 * Moose::Meta::Role
1240 - moved Moose::Meta::Role::Method into
946289d1 1241 its own file.
4734114b 1242
43123819 1243 * Moose::Meta::Attribute
4734114b 1244 - changed how we do type checks so that
1245 we reduce the overall cost, but still
7623f774 1246 retain correctness.
946289d1 1247 *** API CHANGE ***
4734114b 1248 - moved accessor generation methods to
1249 Moose::Meta::Method::Accessor to
1250 conform to the API changes from
946289d1 1251 Class::MOP 0.36
4734114b 1252
43123819 1253 * Moose::Meta::TypeConstraint
1254 - changed how constraints are compiled
1255 so that we do less recursion and more
4734114b 1256 iteration. This makes the type check
43123819 1257 faster :)
946289d1 1258 - moved Moose::Meta::TypeConstraint::Union
1259 into its own file
4734114b 1260
946289d1 1261 * Moose::Meta::Method::Accessor
4734114b 1262 - created this from methods formerly found in
946289d1 1263 Moose::Meta::Attribute
4734114b 1264
946289d1 1265 * Moose::Meta::Role::Method
1266 - moved this from Moose::Meta::Role
4734114b 1267
946289d1 1268 * Moose::Meta::Method::Overriden
1269 - moved this from Moose::Meta::Class
4734114b 1270
946289d1 1271 * Moose::Meta::TypeConstraint::Union
1272 - moved this from Moose::Meta::TypeConstraint
37ee30c9 1273
3ec7b7a3 12740.14 Mon. Oct. 9, 2006
4fd69d6c 1275
1276 * Moose::Meta::Attribute
4734114b 1277 - fixed lazy attributes which were not getting
4fd69d6c 1278 checked with the type constraint (thanks ashley)
1279 - added tests for this
4734114b 1280 - removed the over-enthusiastic DWIMery of the
1281 automatic ArrayRef and HashRef defaults, it
3ec7b7a3 1282 broke predicates in an ugly way.
1283 - removed tests for this
4fd69d6c 1284
c0c41f76 12850.13 Sat. Sept. 30, 2006
093b12c2 1286 ++ NOTE ++
4734114b 1287 This version of Moose *must* have Class::MOP 0.35 in order
1288 to work correctly. A number of small internal tweaks have
093b12c2 1289 been made in order to be compatible with that release.
1290
3c2bc5e2 1291 * Moose
1292 - Removed the use of UNIVERSAL::require to be a better
4734114b 1293 symbol table citizen and remove a dependency
093b12c2 1294 (thanks Adam Kennedy)
3c2bc5e2 1295
2a0f3bd3 1296 **~~ removed experimental & undocumented feature ~~**
4734114b 1297 - commented out the 'method' and 'self' keywords, see the
2a0f3bd3 1298 comments for more info.
1299
e95c7c42 1300 * Moose::Cookbook
4734114b 1301 - added a FAQ and WTF files to document frequently
e95c7c42 1302 asked questions and common problems
4734114b 1303
3f7376b0 1304 * Moose::Util::TypeConstraints
0a5bd159 1305 - added GlobRef and FileHandle type constraint
3f7376b0 1306 - added tests for this
4734114b 1307
3f7376b0 1308 * Moose::Meta::Attribute
1309 - if your attribute 'isa' ArrayRef of HashRef, and you have
1310 not explicitly set a default, then make the default DWIM.
4734114b 1311 This will also work for subtypes of ArrayRef and HashRef
94b8bbb8 1312 as well.
1313 - you can now auto-deref subtypes of ArrayRef or HashRef too.
1314 - new test added for this (thanks to ashley)
4734114b 1315
b805c70c 1316 * Moose::Meta::Role
1317 - added basic support for runtime role composition
4734114b 1318 but this is still *highly experimental*, so feedback
0a5bd159 1319 is much appreciated :)
b805c70c 1320 - added tests for this
e95c7c42 1321
0a5bd159 1322 * Moose::Meta::TypeConstraint
1323 - the type constraint now handles the coercion process
4734114b 1324 through delegation, this is to support the coercion
0a5bd159 1325 of unions
4734114b 1326
0a5bd159 1327 * Moose::Meta::TypeConstraint::Union
4734114b 1328 - it is now possible for coercions to be performed
0a5bd159 1329 on a type union
1330 - added tests for this (thanks to konobi)
1331
e95c7c42 1332 * Moose::Meta::TypeCoercion
4734114b 1333 - properly capturing error when type constraint
e95c7c42 1334 is not found
1335
3c2bc5e2 1336 * Build.PL
1337 - Scalar::Util 1.18 is bad on Win32, so temporarily
1338 only require version 1.17 for Win32 and cygwin.
4734114b 1339 (thanks Adam Kennedy)
3c2bc5e2 1340
40e89659 13410.12 Sat. Sept. 1, 2006
2bdd01cd 1342 * Moose::Cookbook
1343 - Recipe5 (subtypes & coercion) has been written
4734114b 1344
2bdd01cd 1345 * Moose
4734114b 1346 - fixed "bad meta" error message to be more descriptive
1347 - fixed &unimport to not remove the &inner and &super
3279ab4a 1348 keywords because we need to localize them.
68efb014 1349 - fixed number of spelling/grammer issues, thanks Theory :)
4734114b 1350
0558683c 1351 **~~ experimental & undocumented feature ~~**
4734114b 1352 - added the method and self keywords, they are basically
68efb014 1353 just sugar, and they may not stay around.
4734114b 1354
f742dfef 1355 * Moose::Object
4734114b 1356 - added &dump method to easily Data::Dumper
68efb014 1357 an object
4734114b 1358
b26e162e 1359 * Moose::Meta::TypeConstraint
1360 - added the &is_a_type_of method to check both the current
1361 and the subtype of a method (similar to &isa with classes)
f008ac1f 1362
68efb014 1363 * Moose::Meta::Role
1364 - this is now a subclass of Class::MOP::Module, and no longer
4734114b 1365 creates the _role_meta ugliness of before.
68efb014 1366 - fixed tests to reflect this change
4734114b 1367
8c835eba 13680.11 Wed. July 12, 2006
31f8ec72 1369 * Moose
1370 - added an &unimport method to remove all the keywords
4734114b 1371 that Moose will import, simply add 'no Moose' to the
1372 bottom of your class file.
1373
31f8ec72 1374 * t/
4734114b 1375 - fixed some test failures caused by a forgotten test
31f8ec72 1376 dependency.
1377
864cd714 13780.10 Thurs. July 6, 2006
01a8e221 1379 * Moose
1380 - improved error message when loading modules so
1381 it is less confusing when you load a role.
4734114b 1382 - added &calculate_all_roles method to
2b14ac61 1383 Moose::Meta::Class and Moose::Meta::Role
4734114b 1384
2b14ac61 1385 NOTE:
1386 This module has been tested against Class::MOP 0.30
4734114b 1387 but it does not yet utilize the optimizations
2b14ac61 1388 it makes available. Stay tuned for that ;)
4734114b 1389
2b14ac61 13900.09_03 Fri. June 23, 2006
715ea0b7 1391 ++ DEVELOPER RELEASE ++
4276ccb4 1392 * Moose
1393 - 'use strict' and 'use warnings' are no longer
4734114b 1394 needed in Moose classes, Moose itself will
4276ccb4 1395 turn them on for you.
1396 - added tests for this
1341f10c 1397 - moved code from exported subs to private methods
1398 in Moose::Meta::Class
4734114b 1399
4276ccb4 1400 * Moose::Role
4734114b 1401 - as with Moose, strict and warnings are
4276ccb4 1402 automatically turned on for you.
4734114b 1403 - added tests for this
1404
e39d707f 1405 * Moose::Meta::Role
1406 - now handles an edge case for override errors
1407 - added tests for this
b7f2d25b 1408 - added some more edge case tests
1341f10c 1409
43d599e5 14100.09_02 Tues. May 16, 2006
715ea0b7 1411 ++ DEVELOPER RELEASE ++
2c0cbef7 1412 * Moose
1413 - added prototypes to the exported subs
43d599e5 1414 - updated docs
4734114b 1415
2c0cbef7 1416 * Moose::Role
4734114b 1417 - added prototypes to the exported subs
43d599e5 1418 - updated docs
4734114b 1419
2c0cbef7 1420 * Moose::Util::TypeConstraints
4734114b 1421 - cleaned up prototypes for the subs
1422 - updated docs
2c0cbef7 1423
72c4f6d1 14240.09_01 Fri. May 12, 2006
1425 ++ DEVELOPER RELEASE ++
4734114b 1426 - This release works in combination with
1427 Class::MOP 0.29_01, it is a developer
1428 release because it uses the a new
72c4f6d1 1429 instance sub-protocol and a fairly
4734114b 1430 complete Role implementation. It has
72c4f6d1 1431 not yet been optimized, so it slower
4734114b 1432 the the previous CPAN version. This
1433 release also lacks good updated docs,
72c4f6d1 1434 the official release will have updated docs.
1435
4734114b 1436 * Moose
98aae381 1437 - refactored the keyword exports
4734114b 1438 - 'with' now checks Role validaity and
db1ab48d 1439 accepts more than one Role at a time
4734114b 1440 - 'extends' makes metaclass adjustments as
98aae381 1441 needed to ensure metaclass compatability
4734114b 1442
72c4f6d1 1443 * Moose::Role
1444 - refactored the keyword exports
4734114b 1445 - 'with' now checks Role validaity and
72c4f6d1 1446 accepts more than one Role at a time
4734114b 1447
98aae381 1448 * Moose::Util::TypeConstraints
4734114b 1449 - added the 'enum' keyword for simple
1450 string enumerations which can be used as
98aae381 1451 type constraints
db1ab48d 1452 - see example of usage in t/202_example.t
4734114b 1453
98aae381 1454 * Moose::Object
1455 - more careful checking of params to new()
4734114b 1456
72c4f6d1 1457 * Moose::Meta::Role
1458 - much work done on the role composition
4734114b 1459 - many new tests for conflict detection
72c4f6d1 1460 and composition edge cases
4734114b 1461 - not enough documentation, I suggest
1462 looking at the tests
1463
98aae381 1464 * Moose::Meta::Instance
4734114b 1465 - added new Instance metaclass to support
98aae381 1466 the new Class::MOP instance protocol
4734114b 1467
98aae381 1468 * Moose::Meta::Class
4734114b 1469 - some small changes to support the new
98aae381 1470 instance protocol
72c4f6d1 1471 - some small additions to support Roles
4734114b 1472
98aae381 1473 * Moose::Meta::Attribute
1474 - some improvements to the accessor generation code
1475 by nothingmuch
4734114b 1476 - some small changes to support the new
98aae381 1477 instance protocol
4734114b 1478 - (still somewhat) experimental delegation support
98aae381 1479 with the 'handles' option
1480 - added several tests for this
db1ab48d 1481 - no docs for this yet
98aae381 1482
35c8b8f2 14830.05 Thurs. April 27, 2006
2d562421 1484 * Moose
1485 - keywords are now exported with Sub::Exporter
1486 thanks to chansen for this commit
4734114b 1487 - has keyword now takes a 'metaclass' option
1488 to support custom attribute meta-classes
590868a3 1489 on a per-attribute basis
4734114b 1490 - added tests for this
daea75c9 1491 - the 'has' keyword not accepts inherited slot
4734114b 1492 specifications (has '+foo'). This is still an
daea75c9 1493 experimental feature and probably not finished
4734114b 1494 see t/038_attribute_inherited_slot_specs.t for
daea75c9 1495 more details, or ask about it on #moose
fcb7afc2 1496 - added tests for this
4734114b 1497
2d562421 1498 * Moose::Role
1499 - keywords are now exported with Sub::Exporter
1500
5204cd52 1501 * Moose::Utils::TypeConstraints
cce8198b 1502 - reorganized the type constraint hierarchy, thanks
4734114b 1503 to nothingmuch and chansen for his help and advice
cce8198b 1504 on this
1505 - added some tests for this
7eaef7ad 1506 - keywords are now exported with Sub::Exporter
35c8b8f2 1507 thanks to chansen for this commit
5204cd52 1508
d500266f 1509 * Moose::Meta::Class
1510 - due to changes in Class::MOP, we had to change
1511 construct_instance (for the better)
4734114b 1512
d500266f 1513 * Moose::Meta::Attribute
4734114b 1514 - due to changes in Class::MOP, we had to add the
d500266f 1515 initialize_instance_slot method (it's a good thing)
4734114b 1516
cce8198b 1517 * Moose::Meta::TypeConstraint
4734114b 1518 - added type constraint unions
c07af9d2 1519 - added tests for this
cce8198b 1520 - added the is_subtype_of predicate method
1521 - added tests for this
d500266f 1522
02a0fb52 15230.04 Sun. April 16th, 2006
1331430a 1524 * Moose::Role
1525 - Roles can now consume other roles
1526 - added tests for this
4734114b 1527 - Roles can specify required methods now with
1331430a 1528 the requires() keyword
1529 - added tests for this
1530
bdabd620 1531 * Moose::Meta::Role
1532 - ripped out much of it's guts ,.. much cleaner now
4734114b 1533 - added required methods and correct handling of
fa1be058 1534 them in apply() for both classes and roles
1535 - added tests for this
4734114b 1536 - no longer adds a does() method to consuming classes
1331430a 1537 it relys on the one in Moose::Object
4734114b 1538 - added roles attribute and some methods to support
1331430a 1539 roles consuming roles
8c9d74e7 1540
1541 * Moose::Meta::Attribute
1542 - added support for triggers on attributes
1543 - added tests for this
4734114b 1544 - added support for does option on an attribute
02a0fb52 1545 - added tests for this
4734114b 1546
8c9d74e7 1547 * Moose::Meta::Class
4734114b 1548 - added support for attribute triggers in the
8c9d74e7 1549 object construction
1550 - added tests for this
4734114b 1551
256903b6 1552 * Moose
4734114b 1553 - Moose no longer creates a subtype for your class
1554 if a subtype of the same name already exists, this
256903b6 1555 should DWIM in 99.9999% of all cases
4734114b 1556
256903b6 1557 * Moose::Util::TypeConstraints
4734114b 1558 - fixed bug where incorrect subtype conflicts were
256903b6 1559 being reported
8c9d74e7 1560 - added test for this
4734114b 1561
8c9d74e7 1562 * Moose::Object
1563 - this class can now be extended with 'use base' if
1564 you need it, it properly loads the metaclass class now
1565 - added test for this
bdabd620 1566
0677220d 15670.03_02 Wed. April 12, 2006
05d9eaf6 1568 * Moose
1569 - you must now explictly use Moose::Util::TypeConstraints
1570 it no longer gets exported for you automatically
4734114b 1571
05d9eaf6 1572 * Moose::Object
1573 - new() now accepts hash-refs as well as key/value lists
0677220d 1574 - added does() method to check for Roles
1575 - added tests for this
05d9eaf6 1576
0677220d 1577 * Moose::Meta::Class
4734114b 1578 - added roles attribute along with the add_role() and
0677220d 1579 does_role() methods
4734114b 1580 - added tests for this
0677220d 1581
1582 * Moose::Meta::Role
4734114b 1583 - now adds a does() method to consuming classes
0677220d 1584 which tests the class's hierarchy for roles
1585 - added tests for this
1586
15870.03_01 Mon. April 10, 2006
e9ec68d6 1588 * Moose::Cookbook
76d37e5a 1589 - added new Role recipe (no content yet, only code)
4734114b 1590
e9ec68d6 1591 * Moose
1592 - added 'with' keyword for Role support
1593 - added test and docs for this
1594 - fixed subtype quoting bug
4734114b 1595 - added test for this
e9ec68d6 1596
1597 * Moose::Role
1598 - Roles for Moose
1599 - added test and docs
76d37e5a 1600
1601 * Moose::Util::TypeConstraints
1602 - added the message keyword to add custom
4734114b 1603 error messages to type constraints
1604
e9ec68d6 1605 * Moose::Meta::Role
1606 - the meta role to support Moose::Role
1607 - added tests and docs
4734114b 1608
e9ec68d6 1609 * Moose::Meta::Class
4734114b 1610 - moved a number of things from Moose.pm
1611 to here, they should have been here
e9ec68d6 1612 in the first place
1613
1614 * Moose::Meta::Attribute
1615 - moved the attribute option macros here
1616 instead of putting them in Moose.pm
e185c027 1617
76d37e5a 1618 * Moose::Meta::TypeConstraint
4734114b 1619 - added the message attributes and the
76d37e5a 1620 validate method
1621 - added tests and docs for this
1622
0ac928d2 16230.03 Thurs. March 30, 2006
e9bb8a31 1624 * Moose::Cookbook
4734114b 1625 - added the Moose::Cookbook with 5 recipes,
e9bb8a31 1626 describing all the stuff Moose can do.
1627
d7f17ebb 1628 * Moose
1629 - fixed an issue with &extends super class loading
4734114b 1630 it now captures errors and deals with inline
1631 packages correctly (bug found by mst, solution
d7f17ebb 1632 stolen from alias)
159da176 1633 - added super/override & inner/augment features
1634 - added tests and docs for these
4734114b 1635
d7f17ebb 1636 * Moose::Object
4734114b 1637 - BUILDALL now takes a reference of the %params
1638 that are passed to &new, and passes that to
d7f17ebb 1639 each BUILD as well.
4734114b 1640
471c4f09 1641 * Moose::Util::TypeConstraints
1642 - Type constraints now survive runtime reloading
1643 - added test for this
d7f17ebb 1644
8339fae2 1645 * Moose::Meta::Class
4734114b 1646 - fixed the way attribute defaults are handled
8339fae2 1647 during instance construction (bug found by chansen)
1648
d7f17ebb 1649 * Moose::Meta::Attribute
1650 - read-only attributes now actually enforce their
4734114b 1651 read-only-ness (this corrected in Class::MOP as
9deed647 1652 well)
d7f17ebb 1653
076c81ed 16540.02 Tues. March 21, 2006
fc5609d2 1655 * Moose
4734114b 1656 - many more tests, fixing some bugs and
b841b2a3 1657 edge cases
b841b2a3 1658 - &extends now loads the base module with
4734114b 1659 UNIVERSAL::require
1660 - added UNIVERSAL::require to the
b841b2a3 1661 dependencies list
6ba6d68c 1662 ** API CHANGES **
4734114b 1663 - each new Moose class will also create
1664 and register a subtype of Object which
1665 correspond to the new Moose class.
1666 - the 'isa' option in &has now only
1667 accepts strings, and will DWIM in
b841b2a3 1668 almost all cases
4734114b 1669
b841b2a3 1670 * Moose::Util::TypeConstraints
1671 - added type coercion features
1672 - added tests for this
4734114b 1673 - added support for this in attributes
b841b2a3 1674 and instance construction
6ba6d68c 1675 ** API CHANGES **
4734114b 1676 - type construction no longer creates a
b841b2a3 1677 function, it registers the type instead.
4734114b 1678 - added several functions to get the
1679 registered types
6ba6d68c 1680
1681 * Moose::Object
4734114b 1682 - BUILDALL and DEMOLISHALL were broken
6ba6d68c 1683 because of a mis-named hash key, Whoops :)
4734114b 1684
b841b2a3 1685 * Moose::Meta::Attribute
1686 - adding support for coercion in the
1687 autogenerated accessors
4734114b 1688
b841b2a3 1689 * Moose::Meta::Class
1690 - adding support for coercion in the
4734114b 1691 instance construction
6ba6d68c 1692
1693 * Moose::Meta::TypeConstraint
1694 * Moose::Meta::TypeCoercion
4734114b 1695 - type constraints and coercions are now
6ba6d68c 1696 full fledges meta-objects
fc5609d2 1697
e522431d 16980.01 Wed. March 15, 2006
900466d6 1699 - Moooooooooooooooooose!!!