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
13 - unimport now returns a true value, this should allow
14 'no Moose' to be used instead of 1; at the end of a
18 - added a FAQ and WTF files to document frequently
19 asked questions and common problems
21 * Moose::Util::TypeConstraints
22 - added GlobRef type constraint
23 - added tests for this
25 * Moose::Meta::Attribute
26 - if your attribute 'isa' ArrayRef of HashRef, and you have
27 not explicitly set a default, then make the default DWIM.
28 This will also work for subtypes of ArrayRef and HashRef
30 - you can now auto-deref subtypes of ArrayRef or HashRef too.
31 - new test added for this (thanks to ashley)
34 - added basic support for runtime role composition
35 but this is still highly experimental
36 - added tests for this
38 * Moose::Meta::TypeCoercion
39 - properly capturing error when type constraint
43 - Scalar::Util 1.18 is bad on Win32, so temporarily
44 only require version 1.17 for Win32 and cygwin.
47 0.12 Sat. Sept. 1, 2006
49 - Recipe5 (subtypes & coercion) has been written
52 - fixed "bad meta" error message to be more descriptive
53 - fixed &unimport to not remove the &inner and &super
54 keywords because we need to localize them.
55 - fixed number of spelling/grammer issues, thanks Theory :)
57 **~~ experimental & undocumented feature ~~**
58 - added the method and self keywords, they are basically
59 just sugar, and they may not stay around.
62 - added &dump method to easily Data::Dumper
65 * Moose::Meta::TypeConstraint
66 - added the &is_a_type_of method to check both the current
67 and the subtype of a method (similar to &isa with classes)
70 - this is now a subclass of Class::MOP::Module, and no longer
71 creates the _role_meta ugliness of before.
72 - fixed tests to reflect this change
74 0.11 Wed. July 12, 2006
76 - added an &unimport method to remove all the keywords
77 that Moose will import, simply add 'no Moose' to the
78 bottom of your class file.
81 - fixed some test failures caused by a forgotten test
84 0.10 Thurs. July 6, 2006
86 - improved error message when loading modules so
87 it is less confusing when you load a role.
88 - added &calculate_all_roles method to
89 Moose::Meta::Class and Moose::Meta::Role
92 This module has been tested against Class::MOP 0.30
93 but it does not yet utilize the optimizations
94 it makes available. Stay tuned for that ;)
96 0.09_03 Fri. June 23, 2006
97 ++ DEVELOPER RELEASE ++
99 - 'use strict' and 'use warnings' are no longer
100 needed in Moose classes, Moose itself will
101 turn them on for you.
102 - added tests for this
103 - moved code from exported subs to private methods
104 in Moose::Meta::Class
107 - as with Moose, strict and warnings are
108 automatically turned on for you.
109 - added tests for this
112 - now handles an edge case for override errors
113 - added tests for this
114 - added some more edge case tests
116 0.09_02 Tues. May 16, 2006
117 ++ DEVELOPER RELEASE ++
119 - added prototypes to the exported subs
123 - added prototypes to the exported subs
126 * Moose::Util::TypeConstraints
127 - cleaned up prototypes for the subs
130 0.09_01 Fri. May 12, 2006
131 ++ DEVELOPER RELEASE ++
132 - This release works in combination with
133 Class::MOP 0.29_01, it is a developer
134 release because it uses the a new
135 instance sub-protocol and a fairly
136 complete Role implementation. It has
137 not yet been optimized, so it slower
138 the the previous CPAN version. This
139 release also lacks good updated docs,
140 the official release will have updated docs.
143 - refactored the keyword exports
144 - 'with' now checks Role validaity and
145 accepts more than one Role at a time
146 - 'extends' makes metaclass adjustments as
147 needed to ensure metaclass compatability
150 - refactored the keyword exports
151 - 'with' now checks Role validaity and
152 accepts more than one Role at a time
154 * Moose::Util::TypeConstraints
155 - added the 'enum' keyword for simple
156 string enumerations which can be used as
158 - see example of usage in t/202_example.t
161 - more careful checking of params to new()
164 - much work done on the role composition
165 - many new tests for conflict detection
166 and composition edge cases
167 - not enough documentation, I suggest
170 * Moose::Meta::Instance
171 - added new Instance metaclass to support
172 the new Class::MOP instance protocol
175 - some small changes to support the new
177 - some small additions to support Roles
179 * Moose::Meta::Attribute
180 - some improvements to the accessor generation code
182 - some small changes to support the new
184 - (still somewhat) experimental delegation support
185 with the 'handles' option
186 - added several tests for this
187 - no docs for this yet
189 0.05 Thurs. April 27, 2006
191 - keywords are now exported with Sub::Exporter
192 thanks to chansen for this commit
193 - has keyword now takes a 'metaclass' option
194 to support custom attribute meta-classes
195 on a per-attribute basis
196 - added tests for this
197 - the 'has' keyword not accepts inherited slot
198 specifications (has '+foo'). This is still an
199 experimental feature and probably not finished
200 see t/038_attribute_inherited_slot_specs.t for
201 more details, or ask about it on #moose
202 - added tests for this
205 - keywords are now exported with Sub::Exporter
207 * Moose::Utils::TypeConstraints
208 - reorganized the type constraint hierarchy, thanks
209 to nothingmuch and chansen for his help and advice
211 - added some tests for this
212 - keywords are now exported with Sub::Exporter
213 thanks to chansen for this commit
216 - due to changes in Class::MOP, we had to change
217 construct_instance (for the better)
219 * Moose::Meta::Attribute
220 - due to changes in Class::MOP, we had to add the
221 initialize_instance_slot method (it's a good thing)
223 * Moose::Meta::TypeConstraint
224 - added type constraint unions
225 - added tests for this
226 - added the is_subtype_of predicate method
227 - added tests for this
229 0.04 Sun. April 16th, 2006
231 - Roles can now consume other roles
232 - added tests for this
233 - Roles can specify required methods now with
234 the requires() keyword
235 - added tests for this
238 - ripped out much of it's guts ,.. much cleaner now
239 - added required methods and correct handling of
240 them in apply() for both classes and roles
241 - added tests for this
242 - no longer adds a does() method to consuming classes
243 it relys on the one in Moose::Object
244 - added roles attribute and some methods to support
245 roles consuming roles
247 * Moose::Meta::Attribute
248 - added support for triggers on attributes
249 - added tests for this
250 - added support for does option on an attribute
251 - added tests for this
254 - added support for attribute triggers in the
256 - added tests for this
259 - Moose no longer creates a subtype for your class
260 if a subtype of the same name already exists, this
261 should DWIM in 99.9999% of all cases
263 * Moose::Util::TypeConstraints
264 - fixed bug where incorrect subtype conflicts were
266 - added test for this
269 - this class can now be extended with 'use base' if
270 you need it, it properly loads the metaclass class now
271 - added test for this
273 0.03_02 Wed. April 12, 2006
275 - you must now explictly use Moose::Util::TypeConstraints
276 it no longer gets exported for you automatically
279 - new() now accepts hash-refs as well as key/value lists
280 - added does() method to check for Roles
281 - added tests for this
284 - added roles attribute along with the add_role() and
286 - added tests for this
289 - now adds a does() method to consuming classes
290 which tests the class's hierarchy for roles
291 - added tests for this
293 0.03_01 Mon. April 10, 2006
295 - added new Role recipe (no content yet, only code)
298 - added 'with' keyword for Role support
299 - added test and docs for this
300 - fixed subtype quoting bug
301 - added test for this
305 - added test and docs
307 * Moose::Util::TypeConstraints
308 - added the message keyword to add custom
309 error messages to type constraints
312 - the meta role to support Moose::Role
313 - added tests and docs
316 - moved a number of things from Moose.pm
317 to here, they should have been here
320 * Moose::Meta::Attribute
321 - moved the attribute option macros here
322 instead of putting them in Moose.pm
324 * Moose::Meta::TypeConstraint
325 - added the message attributes and the
327 - added tests and docs for this
329 0.03 Thurs. March 30, 2006
331 - added the Moose::Cookbook with 5 recipes,
332 describing all the stuff Moose can do.
335 - fixed an issue with &extends super class loading
336 it now captures errors and deals with inline
337 packages correctly (bug found by mst, solution
339 - added super/override & inner/augment features
340 - added tests and docs for these
343 - BUILDALL now takes a reference of the %params
344 that are passed to &new, and passes that to
347 * Moose::Util::TypeConstraints
348 - Type constraints now survive runtime reloading
349 - added test for this
352 - fixed the way attribute defaults are handled
353 during instance construction (bug found by chansen)
355 * Moose::Meta::Attribute
356 - read-only attributes now actually enforce their
357 read-only-ness (this corrected in Class::MOP as
360 0.02 Tues. March 21, 2006
362 - many more tests, fixing some bugs and
364 - &extends now loads the base module with
366 - added UNIVERSAL::require to the
369 - each new Moose class will also create
370 and register a subtype of Object which
371 correspond to the new Moose class.
372 - the 'isa' option in &has now only
373 accepts strings, and will DWIM in
376 * Moose::Util::TypeConstraints
377 - added type coercion features
378 - added tests for this
379 - added support for this in attributes
380 and instance construction
382 - type construction no longer creates a
383 function, it registers the type instead.
384 - added several functions to get the
388 - BUILDALL and DEMOLISHALL were broken
389 because of a mis-named hash key, Whoops :)
391 * Moose::Meta::Attribute
392 - adding support for coercion in the
393 autogenerated accessors
396 - adding support for coercion in the
397 instance construction
399 * Moose::Meta::TypeConstraint
400 * Moose::Meta::TypeCoercion
401 - type constraints and coercions are now
402 full fledges meta-objects
404 0.01 Wed. March 15, 2006
405 - Moooooooooooooooooose!!!