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