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