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