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