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