1 Revision history for Perl extension Moose
5 * Moose::Util::TypeConstraints
6 - added &unimport so that you can clean out
7 your class namespace of these exported
11 - fixed minor issue which occasionally
12 comes up during global destruction
15 * Moose::Meta::Attribute
16 - changed how we do type checks so that
17 we reduce the overall cost, but still
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
26 0.14 Mon. Oct. 9, 2006
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
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
37 0.13 Sat. Sept. 30, 2006
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.
44 - Removed the use of UNIVERSAL::require to be a better
45 symbol table citizen and remove a dependency
48 **~~ removed experimental & undocumented feature ~~**
49 - commented out the 'method' and 'self' keywords, see the
50 comments for more info.
53 - added a FAQ and WTF files to document frequently
54 asked questions and common problems
56 * Moose::Util::TypeConstraints
57 - added GlobRef and FileHandle type constraint
58 - added tests for this
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.
63 This will also work for subtypes of ArrayRef and HashRef
65 - you can now auto-deref subtypes of ArrayRef or HashRef too.
66 - new test added for this (thanks to ashley)
69 - added basic support for runtime role composition
70 but this is still *highly experimental*, so feedback
71 is much appreciated :)
72 - added tests for this
74 * Moose::Meta::TypeConstraint
75 - the type constraint now handles the coercion process
76 through delegation, this is to support the coercion
79 * Moose::Meta::TypeConstraint::Union
80 - it is now possible for coercions to be performed
82 - added tests for this (thanks to konobi)
84 * Moose::Meta::TypeCoercion
85 - properly capturing error when type constraint
89 - Scalar::Util 1.18 is bad on Win32, so temporarily
90 only require version 1.17 for Win32 and cygwin.
93 0.12 Sat. Sept. 1, 2006
95 - Recipe5 (subtypes & coercion) has been written
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.
101 - fixed number of spelling/grammer issues, thanks Theory :)
103 **~~ experimental & undocumented feature ~~**
104 - added the method and self keywords, they are basically
105 just sugar, and they may not stay around.
108 - added &dump method to easily Data::Dumper
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)
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
120 0.11 Wed. July 12, 2006
122 - added an &unimport method to remove all the keywords
123 that Moose will import, simply add 'no Moose' to the
124 bottom of your class file.
127 - fixed some test failures caused by a forgotten test
130 0.10 Thurs. July 6, 2006
132 - improved error message when loading modules so
133 it is less confusing when you load a role.
134 - added &calculate_all_roles method to
135 Moose::Meta::Class and Moose::Meta::Role
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 ;)
142 0.09_03 Fri. June 23, 2006
143 ++ DEVELOPER RELEASE ++
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
149 - moved code from exported subs to private methods
150 in Moose::Meta::Class
153 - as with Moose, strict and warnings are
154 automatically turned on for you.
155 - added tests for this
158 - now handles an edge case for override errors
159 - added tests for this
160 - added some more edge case tests
162 0.09_02 Tues. May 16, 2006
163 ++ DEVELOPER RELEASE ++
165 - added prototypes to the exported subs
169 - added prototypes to the exported subs
172 * Moose::Util::TypeConstraints
173 - cleaned up prototypes for the subs
176 0.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.
189 - refactored the keyword exports
190 - 'with' now checks Role validaity and
191 accepts more than one Role at a time
192 - 'extends' makes metaclass adjustments as
193 needed to ensure metaclass compatability
196 - refactored the keyword exports
197 - 'with' now checks Role validaity and
198 accepts more than one Role at a time
200 * Moose::Util::TypeConstraints
201 - added the 'enum' keyword for simple
202 string enumerations which can be used as
204 - see example of usage in t/202_example.t
207 - more careful checking of params to new()
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
216 * Moose::Meta::Instance
217 - added new Instance metaclass to support
218 the new Class::MOP instance protocol
221 - some small changes to support the new
223 - some small additions to support Roles
225 * Moose::Meta::Attribute
226 - some improvements to the accessor generation code
228 - some small changes to support the new
230 - (still somewhat) experimental delegation support
231 with the 'handles' option
232 - added several tests for this
233 - no docs for this yet
235 0.05 Thurs. April 27, 2006
237 - keywords are now exported with Sub::Exporter
238 thanks to chansen for this commit
239 - has keyword now takes a 'metaclass' option
240 to support custom attribute meta-classes
241 on a per-attribute basis
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
248 - added tests for this
251 - keywords are now exported with Sub::Exporter
253 * Moose::Utils::TypeConstraints
254 - reorganized the type constraint hierarchy, thanks
255 to nothingmuch and chansen for his help and advice
257 - added some tests for this
258 - keywords are now exported with Sub::Exporter
259 thanks to chansen for this commit
262 - due to changes in Class::MOP, we had to change
263 construct_instance (for the better)
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)
269 * Moose::Meta::TypeConstraint
270 - added type constraint unions
271 - added tests for this
272 - added the is_subtype_of predicate method
273 - added tests for this
275 0.04 Sun. April 16th, 2006
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
284 - ripped out much of it's guts ,.. much cleaner now
285 - added required methods and correct handling of
286 them in apply() for both classes and roles
287 - added tests for this
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
293 * Moose::Meta::Attribute
294 - added support for triggers on attributes
295 - added tests for this
296 - added support for does option on an attribute
297 - added tests for this
300 - added support for attribute triggers in the
302 - added tests for this
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
309 * Moose::Util::TypeConstraints
310 - fixed bug where incorrect subtype conflicts were
312 - added test for this
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
319 0.03_02 Wed. April 12, 2006
321 - you must now explictly use Moose::Util::TypeConstraints
322 it no longer gets exported for you automatically
325 - new() now accepts hash-refs as well as key/value lists
326 - added does() method to check for Roles
327 - added tests for this
330 - added roles attribute along with the add_role() and
332 - added tests for this
335 - now adds a does() method to consuming classes
336 which tests the class's hierarchy for roles
337 - added tests for this
339 0.03_01 Mon. April 10, 2006
341 - added new Role recipe (no content yet, only code)
344 - added 'with' keyword for Role support
345 - added test and docs for this
346 - fixed subtype quoting bug
347 - added test for this
351 - added test and docs
353 * Moose::Util::TypeConstraints
354 - added the message keyword to add custom
355 error messages to type constraints
358 - the meta role to support Moose::Role
359 - added tests and docs
362 - moved a number of things from Moose.pm
363 to here, they should have been here
366 * Moose::Meta::Attribute
367 - moved the attribute option macros here
368 instead of putting them in Moose.pm
370 * Moose::Meta::TypeConstraint
371 - added the message attributes and the
373 - added tests and docs for this
375 0.03 Thurs. March 30, 2006
377 - added the Moose::Cookbook with 5 recipes,
378 describing all the stuff Moose can do.
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
385 - added super/override & inner/augment features
386 - added tests and docs for these
389 - BUILDALL now takes a reference of the %params
390 that are passed to &new, and passes that to
393 * Moose::Util::TypeConstraints
394 - Type constraints now survive runtime reloading
395 - added test for this
398 - fixed the way attribute defaults are handled
399 during instance construction (bug found by chansen)
401 * Moose::Meta::Attribute
402 - read-only attributes now actually enforce their
403 read-only-ness (this corrected in Class::MOP as
406 0.02 Tues. March 21, 2006
408 - many more tests, fixing some bugs and
410 - &extends now loads the base module with
412 - added UNIVERSAL::require to the
415 - each new Moose class will also create
416 and register a subtype of Object which
417 correspond to the new Moose class.
418 - the 'isa' option in &has now only
419 accepts strings, and will DWIM in
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
428 - type construction no longer creates a
429 function, it registers the type instead.
430 - added several functions to get the
434 - BUILDALL and DEMOLISHALL were broken
435 because of a mis-named hash key, Whoops :)
437 * Moose::Meta::Attribute
438 - adding support for coercion in the
439 autogenerated accessors
442 - adding support for coercion in the
443 instance construction
445 * Moose::Meta::TypeConstraint
446 * Moose::Meta::TypeCoercion
447 - type constraints and coercions are now
448 full fledges meta-objects
450 0.01 Wed. March 15, 2006
451 - Moooooooooooooooooose!!!