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.
30 - added basic support for runtime role composition
31 but this is still highly experimental
32 - added tests for this
34 * Moose::Meta::TypeCoercion
35 - properly capturing error when type constraint
39 - Scalar::Util 1.18 is bad on Win32, so temporarily
40 only require version 1.17 for Win32 and cygwin.
43 0.12 Sat. Sept. 1, 2006
45 - Recipe5 (subtypes & coercion) has been written
48 - fixed "bad meta" error message to be more descriptive
49 - fixed &unimport to not remove the &inner and &super
50 keywords because we need to localize them.
51 - fixed number of spelling/grammer issues, thanks Theory :)
53 **~~ experimental & undocumented feature ~~**
54 - added the method and self keywords, they are basically
55 just sugar, and they may not stay around.
58 - added &dump method to easily Data::Dumper
61 * Moose::Meta::TypeConstraint
62 - added the &is_a_type_of method to check both the current
63 and the subtype of a method (similar to &isa with classes)
66 - this is now a subclass of Class::MOP::Module, and no longer
67 creates the _role_meta ugliness of before.
68 - fixed tests to reflect this change
70 0.11 Wed. July 12, 2006
72 - added an &unimport method to remove all the keywords
73 that Moose will import, simply add 'no Moose' to the
74 bottom of your class file.
77 - fixed some test failures caused by a forgotten test
80 0.10 Thurs. July 6, 2006
82 - improved error message when loading modules so
83 it is less confusing when you load a role.
84 - added &calculate_all_roles method to
85 Moose::Meta::Class and Moose::Meta::Role
88 This module has been tested against Class::MOP 0.30
89 but it does not yet utilize the optimizations
90 it makes available. Stay tuned for that ;)
92 0.09_03 Fri. June 23, 2006
93 ++ DEVELOPER RELEASE ++
95 - 'use strict' and 'use warnings' are no longer
96 needed in Moose classes, Moose itself will
98 - added tests for this
99 - moved code from exported subs to private methods
100 in Moose::Meta::Class
103 - as with Moose, strict and warnings are
104 automatically turned on for you.
105 - added tests for this
108 - now handles an edge case for override errors
109 - added tests for this
110 - added some more edge case tests
112 0.09_02 Tues. May 16, 2006
113 ++ DEVELOPER RELEASE ++
115 - added prototypes to the exported subs
119 - added prototypes to the exported subs
122 * Moose::Util::TypeConstraints
123 - cleaned up prototypes for the subs
126 0.09_01 Fri. May 12, 2006
127 ++ DEVELOPER RELEASE ++
128 - This release works in combination with
129 Class::MOP 0.29_01, it is a developer
130 release because it uses the a new
131 instance sub-protocol and a fairly
132 complete Role implementation. It has
133 not yet been optimized, so it slower
134 the the previous CPAN version. This
135 release also lacks good updated docs,
136 the official release will have updated docs.
139 - refactored the keyword exports
140 - 'with' now checks Role validaity and
141 accepts more than one Role at a time
142 - 'extends' makes metaclass adjustments as
143 needed to ensure metaclass compatability
146 - refactored the keyword exports
147 - 'with' now checks Role validaity and
148 accepts more than one Role at a time
150 * Moose::Util::TypeConstraints
151 - added the 'enum' keyword for simple
152 string enumerations which can be used as
154 - see example of usage in t/202_example.t
157 - more careful checking of params to new()
160 - much work done on the role composition
161 - many new tests for conflict detection
162 and composition edge cases
163 - not enough documentation, I suggest
166 * Moose::Meta::Instance
167 - added new Instance metaclass to support
168 the new Class::MOP instance protocol
171 - some small changes to support the new
173 - some small additions to support Roles
175 * Moose::Meta::Attribute
176 - some improvements to the accessor generation code
178 - some small changes to support the new
180 - (still somewhat) experimental delegation support
181 with the 'handles' option
182 - added several tests for this
183 - no docs for this yet
185 0.05 Thurs. April 27, 2006
187 - keywords are now exported with Sub::Exporter
188 thanks to chansen for this commit
189 - has keyword now takes a 'metaclass' option
190 to support custom attribute meta-classes
191 on a per-attribute basis
192 - added tests for this
193 - the 'has' keyword not accepts inherited slot
194 specifications (has '+foo'). This is still an
195 experimental feature and probably not finished
196 see t/038_attribute_inherited_slot_specs.t for
197 more details, or ask about it on #moose
198 - added tests for this
201 - keywords are now exported with Sub::Exporter
203 * Moose::Utils::TypeConstraints
204 - reorganized the type constraint hierarchy, thanks
205 to nothingmuch and chansen for his help and advice
207 - added some tests for this
208 - keywords are now exported with Sub::Exporter
209 thanks to chansen for this commit
212 - due to changes in Class::MOP, we had to change
213 construct_instance (for the better)
215 * Moose::Meta::Attribute
216 - due to changes in Class::MOP, we had to add the
217 initialize_instance_slot method (it's a good thing)
219 * Moose::Meta::TypeConstraint
220 - added type constraint unions
221 - added tests for this
222 - added the is_subtype_of predicate method
223 - added tests for this
225 0.04 Sun. April 16th, 2006
227 - Roles can now consume other roles
228 - added tests for this
229 - Roles can specify required methods now with
230 the requires() keyword
231 - added tests for this
234 - ripped out much of it's guts ,.. much cleaner now
235 - added required methods and correct handling of
236 them in apply() for both classes and roles
237 - added tests for this
238 - no longer adds a does() method to consuming classes
239 it relys on the one in Moose::Object
240 - added roles attribute and some methods to support
241 roles consuming roles
243 * Moose::Meta::Attribute
244 - added support for triggers on attributes
245 - added tests for this
246 - added support for does option on an attribute
247 - added tests for this
250 - added support for attribute triggers in the
252 - added tests for this
255 - Moose no longer creates a subtype for your class
256 if a subtype of the same name already exists, this
257 should DWIM in 99.9999% of all cases
259 * Moose::Util::TypeConstraints
260 - fixed bug where incorrect subtype conflicts were
262 - added test for this
265 - this class can now be extended with 'use base' if
266 you need it, it properly loads the metaclass class now
267 - added test for this
269 0.03_02 Wed. April 12, 2006
271 - you must now explictly use Moose::Util::TypeConstraints
272 it no longer gets exported for you automatically
275 - new() now accepts hash-refs as well as key/value lists
276 - added does() method to check for Roles
277 - added tests for this
280 - added roles attribute along with the add_role() and
282 - added tests for this
285 - now adds a does() method to consuming classes
286 which tests the class's hierarchy for roles
287 - added tests for this
289 0.03_01 Mon. April 10, 2006
291 - added new Role recipe (no content yet, only code)
294 - added 'with' keyword for Role support
295 - added test and docs for this
296 - fixed subtype quoting bug
297 - added test for this
301 - added test and docs
303 * Moose::Util::TypeConstraints
304 - added the message keyword to add custom
305 error messages to type constraints
308 - the meta role to support Moose::Role
309 - added tests and docs
312 - moved a number of things from Moose.pm
313 to here, they should have been here
316 * Moose::Meta::Attribute
317 - moved the attribute option macros here
318 instead of putting them in Moose.pm
320 * Moose::Meta::TypeConstraint
321 - added the message attributes and the
323 - added tests and docs for this
325 0.03 Thurs. March 30, 2006
327 - added the Moose::Cookbook with 5 recipes,
328 describing all the stuff Moose can do.
331 - fixed an issue with &extends super class loading
332 it now captures errors and deals with inline
333 packages correctly (bug found by mst, solution
335 - added super/override & inner/augment features
336 - added tests and docs for these
339 - BUILDALL now takes a reference of the %params
340 that are passed to &new, and passes that to
343 * Moose::Util::TypeConstraints
344 - Type constraints now survive runtime reloading
345 - added test for this
348 - fixed the way attribute defaults are handled
349 during instance construction (bug found by chansen)
351 * Moose::Meta::Attribute
352 - read-only attributes now actually enforce their
353 read-only-ness (this corrected in Class::MOP as
356 0.02 Tues. March 21, 2006
358 - many more tests, fixing some bugs and
360 - &extends now loads the base module with
362 - added UNIVERSAL::require to the
365 - each new Moose class will also create
366 and register a subtype of Object which
367 correspond to the new Moose class.
368 - the 'isa' option in &has now only
369 accepts strings, and will DWIM in
372 * Moose::Util::TypeConstraints
373 - added type coercion features
374 - added tests for this
375 - added support for this in attributes
376 and instance construction
378 - type construction no longer creates a
379 function, it registers the type instead.
380 - added several functions to get the
384 - BUILDALL and DEMOLISHALL were broken
385 because of a mis-named hash key, Whoops :)
387 * Moose::Meta::Attribute
388 - adding support for coercion in the
389 autogenerated accessors
392 - adding support for coercion in the
393 instance construction
395 * Moose::Meta::TypeConstraint
396 * Moose::Meta::TypeCoercion
397 - type constraints and coercions are now
398 full fledges meta-objects
400 0.01 Wed. March 15, 2006
401 - Moooooooooooooooooose!!!