1 Revision history for Perl extension Moose
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.
10 - Removed the use of UNIVERSAL::require to be a better
11 symbol table citizen and remove a dependency
15 - added a FAQ and WTF files to document frequently
16 asked questions and common problems
18 * Moose::Util::TypeConstraints
19 - added GlobRef and FileHandle type constraint
20 - added tests for this
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.
25 This will also work for subtypes of ArrayRef and HashRef
27 - you can now auto-deref subtypes of ArrayRef or HashRef too.
28 - new test added for this (thanks to ashley)
31 - added basic support for runtime role composition
32 but this is still *highly experimental*, so feedback
33 is much appreciated :)
34 - added tests for this
36 * Moose::Meta::TypeConstraint
37 - the type constraint now handles the coercion process
38 through delegation, this is to support the coercion
41 * Moose::Meta::TypeConstraint::Union
42 - it is now possible for coercions to be performed
44 - added tests for this (thanks to konobi)
46 * Moose::Meta::TypeCoercion
47 - properly capturing error when type constraint
51 - Scalar::Util 1.18 is bad on Win32, so temporarily
52 only require version 1.17 for Win32 and cygwin.
55 0.12 Sat. Sept. 1, 2006
57 - Recipe5 (subtypes & coercion) has been written
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.
63 - fixed number of spelling/grammer issues, thanks Theory :)
65 **~~ experimental & undocumented feature ~~**
66 - added the method and self keywords, they are basically
67 just sugar, and they may not stay around.
70 - added &dump method to easily Data::Dumper
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)
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
82 0.11 Wed. July 12, 2006
84 - added an &unimport method to remove all the keywords
85 that Moose will import, simply add 'no Moose' to the
86 bottom of your class file.
89 - fixed some test failures caused by a forgotten test
92 0.10 Thurs. July 6, 2006
94 - improved error message when loading modules so
95 it is less confusing when you load a role.
96 - added &calculate_all_roles method to
97 Moose::Meta::Class and Moose::Meta::Role
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 ;)
104 0.09_03 Fri. June 23, 2006
105 ++ DEVELOPER RELEASE ++
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
111 - moved code from exported subs to private methods
112 in Moose::Meta::Class
115 - as with Moose, strict and warnings are
116 automatically turned on for you.
117 - added tests for this
120 - now handles an edge case for override errors
121 - added tests for this
122 - added some more edge case tests
124 0.09_02 Tues. May 16, 2006
125 ++ DEVELOPER RELEASE ++
127 - added prototypes to the exported subs
131 - added prototypes to the exported subs
134 * Moose::Util::TypeConstraints
135 - cleaned up prototypes for the subs
138 0.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.
151 - refactored the keyword exports
152 - 'with' now checks Role validaity and
153 accepts more than one Role at a time
154 - 'extends' makes metaclass adjustments as
155 needed to ensure metaclass compatability
158 - refactored the keyword exports
159 - 'with' now checks Role validaity and
160 accepts more than one Role at a time
162 * Moose::Util::TypeConstraints
163 - added the 'enum' keyword for simple
164 string enumerations which can be used as
166 - see example of usage in t/202_example.t
169 - more careful checking of params to new()
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
178 * Moose::Meta::Instance
179 - added new Instance metaclass to support
180 the new Class::MOP instance protocol
183 - some small changes to support the new
185 - some small additions to support Roles
187 * Moose::Meta::Attribute
188 - some improvements to the accessor generation code
190 - some small changes to support the new
192 - (still somewhat) experimental delegation support
193 with the 'handles' option
194 - added several tests for this
195 - no docs for this yet
197 0.05 Thurs. April 27, 2006
199 - keywords are now exported with Sub::Exporter
200 thanks to chansen for this commit
201 - has keyword now takes a 'metaclass' option
202 to support custom attribute meta-classes
203 on a per-attribute basis
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
210 - added tests for this
213 - keywords are now exported with Sub::Exporter
215 * Moose::Utils::TypeConstraints
216 - reorganized the type constraint hierarchy, thanks
217 to nothingmuch and chansen for his help and advice
219 - added some tests for this
220 - keywords are now exported with Sub::Exporter
221 thanks to chansen for this commit
224 - due to changes in Class::MOP, we had to change
225 construct_instance (for the better)
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)
231 * Moose::Meta::TypeConstraint
232 - added type constraint unions
233 - added tests for this
234 - added the is_subtype_of predicate method
235 - added tests for this
237 0.04 Sun. April 16th, 2006
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
246 - ripped out much of it's guts ,.. much cleaner now
247 - added required methods and correct handling of
248 them in apply() for both classes and roles
249 - added tests for this
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
255 * Moose::Meta::Attribute
256 - added support for triggers on attributes
257 - added tests for this
258 - added support for does option on an attribute
259 - added tests for this
262 - added support for attribute triggers in the
264 - added tests for this
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
271 * Moose::Util::TypeConstraints
272 - fixed bug where incorrect subtype conflicts were
274 - added test for this
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
281 0.03_02 Wed. April 12, 2006
283 - you must now explictly use Moose::Util::TypeConstraints
284 it no longer gets exported for you automatically
287 - new() now accepts hash-refs as well as key/value lists
288 - added does() method to check for Roles
289 - added tests for this
292 - added roles attribute along with the add_role() and
294 - added tests for this
297 - now adds a does() method to consuming classes
298 which tests the class's hierarchy for roles
299 - added tests for this
301 0.03_01 Mon. April 10, 2006
303 - added new Role recipe (no content yet, only code)
306 - added 'with' keyword for Role support
307 - added test and docs for this
308 - fixed subtype quoting bug
309 - added test for this
313 - added test and docs
315 * Moose::Util::TypeConstraints
316 - added the message keyword to add custom
317 error messages to type constraints
320 - the meta role to support Moose::Role
321 - added tests and docs
324 - moved a number of things from Moose.pm
325 to here, they should have been here
328 * Moose::Meta::Attribute
329 - moved the attribute option macros here
330 instead of putting them in Moose.pm
332 * Moose::Meta::TypeConstraint
333 - added the message attributes and the
335 - added tests and docs for this
337 0.03 Thurs. March 30, 2006
339 - added the Moose::Cookbook with 5 recipes,
340 describing all the stuff Moose can do.
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
347 - added super/override & inner/augment features
348 - added tests and docs for these
351 - BUILDALL now takes a reference of the %params
352 that are passed to &new, and passes that to
355 * Moose::Util::TypeConstraints
356 - Type constraints now survive runtime reloading
357 - added test for this
360 - fixed the way attribute defaults are handled
361 during instance construction (bug found by chansen)
363 * Moose::Meta::Attribute
364 - read-only attributes now actually enforce their
365 read-only-ness (this corrected in Class::MOP as
368 0.02 Tues. March 21, 2006
370 - many more tests, fixing some bugs and
372 - &extends now loads the base module with
374 - added UNIVERSAL::require to the
377 - each new Moose class will also create
378 and register a subtype of Object which
379 correspond to the new Moose class.
380 - the 'isa' option in &has now only
381 accepts strings, and will DWIM in
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
390 - type construction no longer creates a
391 function, it registers the type instead.
392 - added several functions to get the
396 - BUILDALL and DEMOLISHALL were broken
397 because of a mis-named hash key, Whoops :)
399 * Moose::Meta::Attribute
400 - adding support for coercion in the
401 autogenerated accessors
404 - adding support for coercion in the
405 instance construction
407 * Moose::Meta::TypeConstraint
408 * Moose::Meta::TypeCoercion
409 - type constraints and coercions are now
410 full fledges meta-objects
412 0.01 Wed. March 15, 2006
413 - Moooooooooooooooooose!!!