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
22 - added basic support for runtime role composition
23 but this is still highly experimental
24 - added tests for this
26 * Moose::Meta::TypeCoercion
27 - properly capturing error when type constraint
31 - Scalar::Util 1.18 is bad on Win32, so temporarily
32 only require version 1.17 for Win32 and cygwin.
35 0.12 Sat. Sept. 1, 2006
37 - Recipe5 (subtypes & coercion) has been written
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.
43 - fixed number of spelling/grammer issues, thanks Theory :)
45 **~~ experimental & undocumented feature ~~**
46 - added the method and self keywords, they are basically
47 just sugar, and they may not stay around.
50 - added &dump method to easily Data::Dumper
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)
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
62 0.11 Wed. July 12, 2006
64 - added an &unimport method to remove all the keywords
65 that Moose will import, simply add 'no Moose' to the
66 bottom of your class file.
69 - fixed some test failures caused by a forgotten test
72 0.10 Thurs. July 6, 2006
74 - improved error message when loading modules so
75 it is less confusing when you load a role.
76 - added &calculate_all_roles method to
77 Moose::Meta::Class and Moose::Meta::Role
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 ;)
84 0.09_03 Fri. June 23, 2006
85 ++ DEVELOPER RELEASE ++
87 - 'use strict' and 'use warnings' are no longer
88 needed in Moose classes, Moose itself will
90 - added tests for this
91 - moved code from exported subs to private methods
95 - as with Moose, strict and warnings are
96 automatically turned on for you.
97 - added tests for this
100 - now handles an edge case for override errors
101 - added tests for this
102 - added some more edge case tests
104 0.09_02 Tues. May 16, 2006
105 ++ DEVELOPER RELEASE ++
107 - added prototypes to the exported subs
111 - added prototypes to the exported subs
114 * Moose::Util::TypeConstraints
115 - cleaned up prototypes for the subs
118 0.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.
131 - refactored the keyword exports
132 - 'with' now checks Role validaity and
133 accepts more than one Role at a time
134 - 'extends' makes metaclass adjustments as
135 needed to ensure metaclass compatability
138 - refactored the keyword exports
139 - 'with' now checks Role validaity and
140 accepts more than one Role at a time
142 * Moose::Util::TypeConstraints
143 - added the 'enum' keyword for simple
144 string enumerations which can be used as
146 - see example of usage in t/202_example.t
149 - more careful checking of params to new()
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
158 * Moose::Meta::Instance
159 - added new Instance metaclass to support
160 the new Class::MOP instance protocol
163 - some small changes to support the new
165 - some small additions to support Roles
167 * Moose::Meta::Attribute
168 - some improvements to the accessor generation code
170 - some small changes to support the new
172 - (still somewhat) experimental delegation support
173 with the 'handles' option
174 - added several tests for this
175 - no docs for this yet
177 0.05 Thurs. April 27, 2006
179 - keywords are now exported with Sub::Exporter
180 thanks to chansen for this commit
181 - has keyword now takes a 'metaclass' option
182 to support custom attribute meta-classes
183 on a per-attribute basis
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
190 - added tests for this
193 - keywords are now exported with Sub::Exporter
195 * Moose::Utils::TypeConstraints
196 - reorganized the type constraint hierarchy, thanks
197 to nothingmuch and chansen for his help and advice
199 - added some tests for this
200 - keywords are now exported with Sub::Exporter
201 thanks to chansen for this commit
204 - due to changes in Class::MOP, we had to change
205 construct_instance (for the better)
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)
211 * Moose::Meta::TypeConstraint
212 - added type constraint unions
213 - added tests for this
214 - added the is_subtype_of predicate method
215 - added tests for this
217 0.04 Sun. April 16th, 2006
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
226 - ripped out much of it's guts ,.. much cleaner now
227 - added required methods and correct handling of
228 them in apply() for both classes and roles
229 - added tests for this
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
235 * Moose::Meta::Attribute
236 - added support for triggers on attributes
237 - added tests for this
238 - added support for does option on an attribute
239 - added tests for this
242 - added support for attribute triggers in the
244 - added tests for this
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
251 * Moose::Util::TypeConstraints
252 - fixed bug where incorrect subtype conflicts were
254 - added test for this
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
261 0.03_02 Wed. April 12, 2006
263 - you must now explictly use Moose::Util::TypeConstraints
264 it no longer gets exported for you automatically
267 - new() now accepts hash-refs as well as key/value lists
268 - added does() method to check for Roles
269 - added tests for this
272 - added roles attribute along with the add_role() and
274 - added tests for this
277 - now adds a does() method to consuming classes
278 which tests the class's hierarchy for roles
279 - added tests for this
281 0.03_01 Mon. April 10, 2006
283 - added new Role recipe (no content yet, only code)
286 - added 'with' keyword for Role support
287 - added test and docs for this
288 - fixed subtype quoting bug
289 - added test for this
293 - added test and docs
295 * Moose::Util::TypeConstraints
296 - added the message keyword to add custom
297 error messages to type constraints
300 - the meta role to support Moose::Role
301 - added tests and docs
304 - moved a number of things from Moose.pm
305 to here, they should have been here
308 * Moose::Meta::Attribute
309 - moved the attribute option macros here
310 instead of putting them in Moose.pm
312 * Moose::Meta::TypeConstraint
313 - added the message attributes and the
315 - added tests and docs for this
317 0.03 Thurs. March 30, 2006
319 - added the Moose::Cookbook with 5 recipes,
320 describing all the stuff Moose can do.
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
327 - added super/override & inner/augment features
328 - added tests and docs for these
331 - BUILDALL now takes a reference of the %params
332 that are passed to &new, and passes that to
335 * Moose::Util::TypeConstraints
336 - Type constraints now survive runtime reloading
337 - added test for this
340 - fixed the way attribute defaults are handled
341 during instance construction (bug found by chansen)
343 * Moose::Meta::Attribute
344 - read-only attributes now actually enforce their
345 read-only-ness (this corrected in Class::MOP as
348 0.02 Tues. March 21, 2006
350 - many more tests, fixing some bugs and
352 - &extends now loads the base module with
354 - added UNIVERSAL::require to the
357 - each new Moose class will also create
358 and register a subtype of Object which
359 correspond to the new Moose class.
360 - the 'isa' option in &has now only
361 accepts strings, and will DWIM in
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
370 - type construction no longer creates a
371 function, it registers the type instead.
372 - added several functions to get the
376 - BUILDALL and DEMOLISHALL were broken
377 because of a mis-named hash key, Whoops :)
379 * Moose::Meta::Attribute
380 - adding support for coercion in the
381 autogenerated accessors
384 - adding support for coercion in the
385 instance construction
387 * Moose::Meta::TypeConstraint
388 * Moose::Meta::TypeCoercion
389 - type constraints and coercions are now
390 full fledges meta-objects
392 0.01 Wed. March 15, 2006
393 - Moooooooooooooooooose!!!