foo
[gitmo/Moose.git] / Changes
CommitLineData
e522431d 1Revision history for Perl extension Moose
2
ecb59493 30.15 Sun. Nov. 5, 2006
946289d1 4 ++ NOTE ++
5 This version of Moose *must* have Class::MOP 0.36 in order
6 to work correctly. A number of small internal tweaks have
7 been made in order to be compatible with that release.
571dd39f 8
9 * Moose::Util::TypeConstraints
10 - added &unimport so that you can clean out
11 your class namespace of these exported
12 keywords
13
37ee30c9 14 * Moose::Meta::Class
15 - fixed minor issue which occasionally
16 comes up during global destruction
17 (thanks omega)
946289d1 18 - moved Moose::Meta::Method::Overriden into
19 its own file.
20
21 * Moose::Meta::Role
22 - moved Moose::Meta::Role::Method into
23 its own file.
24
43123819 25 * Moose::Meta::Attribute
26 - changed how we do type checks so that
7623f774 27 we reduce the overall cost, but still
28 retain correctness.
946289d1 29 *** API CHANGE ***
30 - moved accessor generation methods to
31 Moose::Meta::Method::Accessor to
32 conform to the API changes from
33 Class::MOP 0.36
43123819 34
35 * Moose::Meta::TypeConstraint
36 - changed how constraints are compiled
37 so that we do less recursion and more
38 iteration. This makes the type check
39 faster :)
946289d1 40 - moved Moose::Meta::TypeConstraint::Union
41 into its own file
42
43 * Moose::Meta::Method::Accessor
44 - created this from methods formerly found in
45 Moose::Meta::Attribute
46
47 * Moose::Meta::Role::Method
48 - moved this from Moose::Meta::Role
49
50 * Moose::Meta::Method::Overriden
51 - moved this from Moose::Meta::Class
52
53 * Moose::Meta::TypeConstraint::Union
54 - moved this from Moose::Meta::TypeConstraint
37ee30c9 55
3ec7b7a3 560.14 Mon. Oct. 9, 2006
4fd69d6c 57
58 * Moose::Meta::Attribute
59 - fixed lazy attributes which were not getting
60 checked with the type constraint (thanks ashley)
61 - added tests for this
3ec7b7a3 62 - removed the over-enthusiastic DWIMery of the
63 automatic ArrayRef and HashRef defaults, it
64 broke predicates in an ugly way.
65 - removed tests for this
4fd69d6c 66
c0c41f76 670.13 Sat. Sept. 30, 2006
093b12c2 68 ++ NOTE ++
69 This version of Moose *must* have Class::MOP 0.35 in order
70 to work correctly. A number of small internal tweaks have
71 been made in order to be compatible with that release.
72
3c2bc5e2 73 * Moose
74 - Removed the use of UNIVERSAL::require to be a better
093b12c2 75 symbol table citizen and remove a dependency
76 (thanks Adam Kennedy)
3c2bc5e2 77
2a0f3bd3 78 **~~ removed experimental & undocumented feature ~~**
79 - commented out the 'method' and 'self' keywords, see the
80 comments for more info.
81
e95c7c42 82 * Moose::Cookbook
83 - added a FAQ and WTF files to document frequently
84 asked questions and common problems
b805c70c 85
3f7376b0 86 * Moose::Util::TypeConstraints
0a5bd159 87 - added GlobRef and FileHandle type constraint
3f7376b0 88 - added tests for this
89
90 * Moose::Meta::Attribute
91 - if your attribute 'isa' ArrayRef of HashRef, and you have
92 not explicitly set a default, then make the default DWIM.
94b8bbb8 93 This will also work for subtypes of ArrayRef and HashRef
94 as well.
95 - you can now auto-deref subtypes of ArrayRef or HashRef too.
96 - new test added for this (thanks to ashley)
3f7376b0 97
b805c70c 98 * Moose::Meta::Role
99 - added basic support for runtime role composition
0a5bd159 100 but this is still *highly experimental*, so feedback
101 is much appreciated :)
b805c70c 102 - added tests for this
e95c7c42 103
0a5bd159 104 * Moose::Meta::TypeConstraint
105 - the type constraint now handles the coercion process
106 through delegation, this is to support the coercion
107 of unions
108
109 * Moose::Meta::TypeConstraint::Union
110 - it is now possible for coercions to be performed
111 on a type union
112 - added tests for this (thanks to konobi)
113
e95c7c42 114 * Moose::Meta::TypeCoercion
115 - properly capturing error when type constraint
116 is not found
117
3c2bc5e2 118 * Build.PL
119 - Scalar::Util 1.18 is bad on Win32, so temporarily
120 only require version 1.17 for Win32 and cygwin.
093b12c2 121 (thanks Adam Kennedy)
3c2bc5e2 122
40e89659 1230.12 Sat. Sept. 1, 2006
2bdd01cd 124 * Moose::Cookbook
125 - Recipe5 (subtypes & coercion) has been written
126
127 * Moose
3279ab4a 128 - fixed "bad meta" error message to be more descriptive
129 - fixed &unimport to not remove the &inner and &super
130 keywords because we need to localize them.
68efb014 131 - fixed number of spelling/grammer issues, thanks Theory :)
0558683c 132
133 **~~ experimental & undocumented feature ~~**
68efb014 134 - added the method and self keywords, they are basically
135 just sugar, and they may not stay around.
f742dfef 136
137 * Moose::Object
68efb014 138 - added &dump method to easily Data::Dumper
139 an object
b26e162e 140
141 * Moose::Meta::TypeConstraint
142 - added the &is_a_type_of method to check both the current
143 and the subtype of a method (similar to &isa with classes)
f008ac1f 144
68efb014 145 * Moose::Meta::Role
146 - this is now a subclass of Class::MOP::Module, and no longer
147 creates the _role_meta ugliness of before.
148 - fixed tests to reflect this change
149
8c835eba 1500.11 Wed. July 12, 2006
31f8ec72 151 * Moose
152 - added an &unimport method to remove all the keywords
8c835eba 153 that Moose will import, simply add 'no Moose' to the
154 bottom of your class file.
31f8ec72 155
156 * t/
157 - fixed some test failures caused by a forgotten test
158 dependency.
159
864cd714 1600.10 Thurs. July 6, 2006
01a8e221 161 * Moose
162 - improved error message when loading modules so
163 it is less confusing when you load a role.
2b14ac61 164 - added &calculate_all_roles method to
165 Moose::Meta::Class and Moose::Meta::Role
166
167 NOTE:
168 This module has been tested against Class::MOP 0.30
169 but it does not yet utilize the optimizations
170 it makes available. Stay tuned for that ;)
171
2b14ac61 1720.09_03 Fri. June 23, 2006
715ea0b7 173 ++ DEVELOPER RELEASE ++
4276ccb4 174 * Moose
175 - 'use strict' and 'use warnings' are no longer
176 needed in Moose classes, Moose itself will
177 turn them on for you.
178 - added tests for this
1341f10c 179 - moved code from exported subs to private methods
180 in Moose::Meta::Class
4276ccb4 181
182 * Moose::Role
183 - as with Moose, strict and warnings are
184 automatically turned on for you.
185 - added tests for this
e39d707f 186
187 * Moose::Meta::Role
188 - now handles an edge case for override errors
189 - added tests for this
b7f2d25b 190 - added some more edge case tests
1341f10c 191
43d599e5 1920.09_02 Tues. May 16, 2006
715ea0b7 193 ++ DEVELOPER RELEASE ++
2c0cbef7 194 * Moose
195 - added prototypes to the exported subs
43d599e5 196 - updated docs
2c0cbef7 197
198 * Moose::Role
199 - added prototypes to the exported subs
43d599e5 200 - updated docs
2c0cbef7 201
202 * Moose::Util::TypeConstraints
203 - cleaned up prototypes for the subs
43d599e5 204 - updated docs
2c0cbef7 205
72c4f6d1 2060.09_01 Fri. May 12, 2006
207 ++ DEVELOPER RELEASE ++
208 - This release works in combination with
209 Class::MOP 0.29_01, it is a developer
210 release because it uses the a new
211 instance sub-protocol and a fairly
212 complete Role implementation. It has
213 not yet been optimized, so it slower
214 the the previous CPAN version. This
215 release also lacks good updated docs,
216 the official release will have updated docs.
217
98aae381 218 * Moose
219 - refactored the keyword exports
db1ab48d 220 - 'with' now checks Role validaity and
221 accepts more than one Role at a time
98aae381 222 - 'extends' makes metaclass adjustments as
223 needed to ensure metaclass compatability
224
72c4f6d1 225 * Moose::Role
226 - refactored the keyword exports
227 - 'with' now checks Role validaity and
228 accepts more than one Role at a time
229
98aae381 230 * Moose::Util::TypeConstraints
231 - added the 'enum' keyword for simple
232 string enumerations which can be used as
233 type constraints
db1ab48d 234 - see example of usage in t/202_example.t
98aae381 235
236 * Moose::Object
237 - more careful checking of params to new()
238
72c4f6d1 239 * Moose::Meta::Role
240 - much work done on the role composition
241 - many new tests for conflict detection
242 and composition edge cases
243 - not enough documentation, I suggest
244 looking at the tests
245
98aae381 246 * Moose::Meta::Instance
247 - added new Instance metaclass to support
248 the new Class::MOP instance protocol
249
250 * Moose::Meta::Class
251 - some small changes to support the new
252 instance protocol
72c4f6d1 253 - some small additions to support Roles
98aae381 254
255 * Moose::Meta::Attribute
256 - some improvements to the accessor generation code
257 by nothingmuch
258 - some small changes to support the new
259 instance protocol
260 - (still somewhat) experimental delegation support
261 with the 'handles' option
262 - added several tests for this
db1ab48d 263 - no docs for this yet
98aae381 264
35c8b8f2 2650.05 Thurs. April 27, 2006
2d562421 266 * Moose
267 - keywords are now exported with Sub::Exporter
268 thanks to chansen for this commit
590868a3 269 - has keyword now takes a 'metaclass' option
270 to support custom attribute meta-classes
271 on a per-attribute basis
daea75c9 272 - added tests for this
273 - the 'has' keyword not accepts inherited slot
274 specifications (has '+foo'). This is still an
275 experimental feature and probably not finished
276 see t/038_attribute_inherited_slot_specs.t for
277 more details, or ask about it on #moose
fcb7afc2 278 - added tests for this
2d562421 279
280 * Moose::Role
281 - keywords are now exported with Sub::Exporter
282
5204cd52 283 * Moose::Utils::TypeConstraints
cce8198b 284 - reorganized the type constraint hierarchy, thanks
285 to nothingmuch and chansen for his help and advice
286 on this
287 - added some tests for this
7eaef7ad 288 - keywords are now exported with Sub::Exporter
35c8b8f2 289 thanks to chansen for this commit
5204cd52 290
d500266f 291 * Moose::Meta::Class
292 - due to changes in Class::MOP, we had to change
293 construct_instance (for the better)
294
295 * Moose::Meta::Attribute
296 - due to changes in Class::MOP, we had to add the
297 initialize_instance_slot method (it's a good thing)
c07af9d2 298
cce8198b 299 * Moose::Meta::TypeConstraint
c07af9d2 300 - added type constraint unions
301 - added tests for this
cce8198b 302 - added the is_subtype_of predicate method
303 - added tests for this
d500266f 304
02a0fb52 3050.04 Sun. April 16th, 2006
1331430a 306 * Moose::Role
307 - Roles can now consume other roles
308 - added tests for this
309 - Roles can specify required methods now with
310 the requires() keyword
311 - added tests for this
312
bdabd620 313 * Moose::Meta::Role
314 - ripped out much of it's guts ,.. much cleaner now
1331430a 315 - added required methods and correct handling of
fa1be058 316 them in apply() for both classes and roles
317 - added tests for this
1331430a 318 - no longer adds a does() method to consuming classes
319 it relys on the one in Moose::Object
320 - added roles attribute and some methods to support
321 roles consuming roles
8c9d74e7 322
323 * Moose::Meta::Attribute
324 - added support for triggers on attributes
325 - added tests for this
02a0fb52 326 - added support for does option on an attribute
327 - added tests for this
8c9d74e7 328
329 * Moose::Meta::Class
330 - added support for attribute triggers in the
331 object construction
332 - added tests for this
256903b6 333
334 * Moose
335 - Moose no longer creates a subtype for your class
336 if a subtype of the same name already exists, this
337 should DWIM in 99.9999% of all cases
338
339 * Moose::Util::TypeConstraints
340 - fixed bug where incorrect subtype conflicts were
341 being reported
8c9d74e7 342 - added test for this
343
344 * Moose::Object
345 - this class can now be extended with 'use base' if
346 you need it, it properly loads the metaclass class now
347 - added test for this
bdabd620 348
0677220d 3490.03_02 Wed. April 12, 2006
05d9eaf6 350 * Moose
351 - you must now explictly use Moose::Util::TypeConstraints
352 it no longer gets exported for you automatically
353
354 * Moose::Object
355 - new() now accepts hash-refs as well as key/value lists
0677220d 356 - added does() method to check for Roles
357 - added tests for this
05d9eaf6 358
0677220d 359 * Moose::Meta::Class
360 - added roles attribute along with the add_role() and
361 does_role() methods
362 - added tests for this
363
364 * Moose::Meta::Role
365 - now adds a does() method to consuming classes
366 which tests the class's hierarchy for roles
367 - added tests for this
368
3690.03_01 Mon. April 10, 2006
e9ec68d6 370 * Moose::Cookbook
76d37e5a 371 - added new Role recipe (no content yet, only code)
e9ec68d6 372
373 * Moose
374 - added 'with' keyword for Role support
375 - added test and docs for this
376 - fixed subtype quoting bug
377 - added test for this
378
379 * Moose::Role
380 - Roles for Moose
381 - added test and docs
76d37e5a 382
383 * Moose::Util::TypeConstraints
384 - added the message keyword to add custom
385 error messages to type constraints
e9ec68d6 386
387 * Moose::Meta::Role
388 - the meta role to support Moose::Role
389 - added tests and docs
390
391 * Moose::Meta::Class
392 - moved a number of things from Moose.pm
393 to here, they should have been here
394 in the first place
395
396 * Moose::Meta::Attribute
397 - moved the attribute option macros here
398 instead of putting them in Moose.pm
e185c027 399
76d37e5a 400 * Moose::Meta::TypeConstraint
401 - added the message attributes and the
402 validate method
403 - added tests and docs for this
404
0ac928d2 4050.03 Thurs. March 30, 2006
e9bb8a31 406 * Moose::Cookbook
407 - added the Moose::Cookbook with 5 recipes,
408 describing all the stuff Moose can do.
409
d7f17ebb 410 * Moose
411 - fixed an issue with &extends super class loading
412 it now captures errors and deals with inline
413 packages correctly (bug found by mst, solution
414 stolen from alias)
159da176 415 - added super/override & inner/augment features
416 - added tests and docs for these
d7f17ebb 417
418 * Moose::Object
419 - BUILDALL now takes a reference of the %params
420 that are passed to &new, and passes that to
421 each BUILD as well.
471c4f09 422
423 * Moose::Util::TypeConstraints
424 - Type constraints now survive runtime reloading
425 - added test for this
d7f17ebb 426
8339fae2 427 * Moose::Meta::Class
428 - fixed the way attribute defaults are handled
429 during instance construction (bug found by chansen)
430
d7f17ebb 431 * Moose::Meta::Attribute
432 - read-only attributes now actually enforce their
9deed647 433 read-only-ness (this corrected in Class::MOP as
434 well)
d7f17ebb 435
076c81ed 4360.02 Tues. March 21, 2006
fc5609d2 437 * Moose
b841b2a3 438 - many more tests, fixing some bugs and
439 edge cases
b841b2a3 440 - &extends now loads the base module with
441 UNIVERSAL::require
442 - added UNIVERSAL::require to the
443 dependencies list
6ba6d68c 444 ** API CHANGES **
b841b2a3 445 - each new Moose class will also create
446 and register a subtype of Object which
447 correspond to the new Moose class.
b841b2a3 448 - the 'isa' option in &has now only
449 accepts strings, and will DWIM in
450 almost all cases
451
452 * Moose::Util::TypeConstraints
453 - added type coercion features
454 - added tests for this
455 - added support for this in attributes
456 and instance construction
6ba6d68c 457 ** API CHANGES **
b841b2a3 458 - type construction no longer creates a
459 function, it registers the type instead.
460 - added several functions to get the
461 registered types
6ba6d68c 462
463 * Moose::Object
464 - BUILDALL and DEMOLISHALL were broken
465 because of a mis-named hash key, Whoops :)
b841b2a3 466
467 * Moose::Meta::Attribute
468 - adding support for coercion in the
469 autogenerated accessors
470
471 * Moose::Meta::Class
472 - adding support for coercion in the
6ba6d68c 473 instance construction
474
475 * Moose::Meta::TypeConstraint
476 * Moose::Meta::TypeCoercion
477 - type constraints and coercions are now
478 full fledges meta-objects
fc5609d2 479
e522431d 4800.01 Wed. March 15, 2006
481 - Moooooooooooooooooose!!!