5a89f1b3f2a6ae3961ba60f2cce13a490d56e42f
[gitmo/Moose.git] / Changes
1 Revision history for Perl extension Moose
2
3 0.12
4     * Moose::Cookbook
5       - Recipe5 (subtypes & coercion) has been written
6       
7     * Moose
8       - fixed "bad meta" error message to be more descriptive      
9       - fixed &unimport to not remove the &inner and &super  
10         keywords because we need to localize them.
11       - fixed number of spelling/grammer issues, thanks Theory :)
12       *~~ experimental feature ~~*
13       - added the method and self keywords, they are basically 
14         just sugar, and they may not stay around.
15         
16     * Moose::Object
17       - added &dump method to easily Data::Dumper 
18         an object
19         
20     * Moose::Meta::TypeConstraint
21       - added the &is_a_type_of method to check both the current
22         and the subtype of a method (similar to &isa with classes)
23
24     * Moose::Meta::Role
25       - this is now a subclass of Class::MOP::Module, and no longer
26         creates the _role_meta ugliness of before. 
27         - fixed tests to reflect this change
28     
29 0.11 Wed. July 12, 2006
30     * Moose
31       - added an &unimport method to remove all the keywords
32         that Moose will import, simply add 'no Moose' to the 
33         bottom of your class file. 
34         
35     * t/
36       - fixed some test failures caused by a forgotten test 
37         dependency.
38
39 0.10 Thurs. July 6, 2006
40     * Moose
41       - improved error message when loading modules so
42         it is less confusing when you load a role.
43       - added &calculate_all_roles method to 
44         Moose::Meta::Class and Moose::Meta::Role
45         
46     NOTE:
47     This module has been tested against Class::MOP 0.30
48     but it does not yet utilize the optimizations 
49     it makes available. Stay tuned for that ;)
50     
51 0.09_03 Fri. June 23, 2006
52     ++ DEVELOPER RELEASE ++
53     * Moose
54       - 'use strict' and 'use warnings' are no longer
55          needed in Moose classes, Moose itself will 
56          turn them on for you.
57          - added tests for this
58       - moved code from exported subs to private methods
59         in Moose::Meta::Class
60          
61     * Moose::Role
62       - as with Moose, strict and warnings are 
63         automatically turned on for you.
64          - added tests for this        
65         
66     * Moose::Meta::Role
67       - now handles an edge case for override errors
68         - added tests for this
69       - added some more edge case tests
70
71 0.09_02 Tues. May 16, 2006
72     ++ DEVELOPER RELEASE ++
73     * Moose
74       - added prototypes to the exported subs
75       - updated docs
76       
77     * Moose::Role
78       - added prototypes to the exported subs      
79       - updated docs
80       
81     * Moose::Util::TypeConstraints
82       - cleaned up prototypes for the subs      
83       - updated docs      
84
85 0.09_01 Fri. May 12, 2006
86     ++ DEVELOPER RELEASE ++
87       - This release works in combination with 
88         Class::MOP 0.29_01, it is a developer 
89         release because it uses the a new 
90         instance sub-protocol and a fairly
91         complete Role implementation. It has 
92         not yet been optimized, so it slower
93         the the previous CPAN version. This 
94         release also lacks good updated docs, 
95         the official release will have updated docs.
96
97     * Moose 
98       - refactored the keyword exports
99         - 'with' now checks Role validaity and 
100           accepts more than one Role at a time
101         - 'extends' makes metaclass adjustments as 
102            needed to ensure metaclass compatability
103           
104     * Moose::Role
105       - refactored the keyword exports
106         - 'with' now checks Role validaity and 
107           accepts more than one Role at a time
108           
109     * Moose::Util::TypeConstraints
110       - added the 'enum' keyword for simple 
111         string enumerations which can be used as 
112         type constraints
113         - see example of usage in t/202_example.t
114         
115     * Moose::Object
116       - more careful checking of params to new()
117       
118     * Moose::Meta::Role
119       - much work done on the role composition
120         - many new tests for conflict detection 
121           and composition edge cases
122         - not enough documentation, I suggest 
123           looking at the tests    
124       
125     * Moose::Meta::Instance
126       - added new Instance metaclass to support 
127         the new Class::MOP instance protocol
128         
129     * Moose::Meta::Class
130       - some small changes to support the new 
131         instance protocol
132       - some small additions to support Roles
133         
134     * Moose::Meta::Attribute
135       - some improvements to the accessor generation code
136         by nothingmuch
137       - some small changes to support the new 
138         instance protocol
139       - (still somewhat) experimental delegation support 
140         with the 'handles' option
141         - added several tests for this
142         - no docs for this yet
143
144 0.05 Thurs. April 27, 2006
145     * Moose
146       - keywords are now exported with Sub::Exporter
147         thanks to chansen for this commit
148       - has keyword now takes a 'metaclass' option 
149         to support custom attribute meta-classes 
150         on a per-attribute basis
151         - added tests for this  
152       - the 'has' keyword not accepts inherited slot
153         specifications (has '+foo'). This is still an 
154         experimental feature and probably not finished
155         see t/038_attribute_inherited_slot_specs.t for 
156         more details, or ask about it on #moose
157         - added tests for this
158         
159     * Moose::Role
160       - keywords are now exported with Sub::Exporter
161
162     * Moose::Utils::TypeConstraints
163       - reorganized the type constraint hierarchy, thanks
164         to nothingmuch and chansen for his help and advice 
165         on this
166         - added some tests for this
167       - keywords are now exported with Sub::Exporter
168         thanks to chansen for this commit
169
170     * Moose::Meta::Class
171       - due to changes in Class::MOP, we had to change
172         construct_instance (for the better)
173         
174     * Moose::Meta::Attribute
175       - due to changes in Class::MOP, we had to add the 
176         initialize_instance_slot method (it's a good thing)
177         
178     * Moose::Meta::TypeConstraint
179       - added type constraint unions 
180         - added tests for this
181       - added the is_subtype_of predicate method
182         - added tests for this
183
184 0.04 Sun. April 16th, 2006
185     * Moose::Role
186       - Roles can now consume other roles
187         - added tests for this
188       - Roles can specify required methods now with 
189         the requires() keyword
190         - added tests for this
191
192     * Moose::Meta::Role
193       - ripped out much of it's guts ,.. much cleaner now
194       - added required methods and correct handling of 
195         them in apply() for both classes and roles
196         - added tests for this
197       - no longer adds a does() method to consuming classes 
198         it relys on the one in Moose::Object
199       - added roles attribute and some methods to support 
200         roles consuming roles
201
202     * Moose::Meta::Attribute
203       - added support for triggers on attributes
204         - added tests for this
205       - added support for does option on an attribute 
206         - added tests for this
207         
208     * Moose::Meta::Class
209       - added support for attribute triggers in the 
210         object construction
211         - added tests for this
212     
213     * Moose
214       - Moose no longer creates a subtype for your class 
215         if a subtype of the same name already exists, this 
216         should DWIM in 99.9999% of all cases
217         
218     * Moose::Util::TypeConstraints
219       - fixed bug where incorrect subtype conflicts were 
220         being reported
221         - added test for this
222         
223     * Moose::Object
224       - this class can now be extended with 'use base' if
225         you need it, it properly loads the metaclass class now
226         - added test for this
227
228 0.03_02 Wed. April 12, 2006
229     * Moose
230       - you must now explictly use Moose::Util::TypeConstraints
231         it no longer gets exported for you automatically
232         
233     * Moose::Object
234       - new() now accepts hash-refs as well as key/value lists
235       - added does() method to check for Roles
236         - added tests for this
237
238     * Moose::Meta::Class
239       - added roles attribute along with the add_role() and 
240         does_role() methods
241         - added tests for this 
242
243     * Moose::Meta::Role
244       - now adds a does() method to consuming classes 
245         which tests the class's hierarchy for roles
246         - added tests for this
247
248 0.03_01 Mon. April 10, 2006
249     * Moose::Cookbook
250       - added new Role recipe (no content yet, only code)
251       
252     * Moose
253       - added 'with' keyword for Role support
254         - added test and docs for this
255       - fixed subtype quoting bug
256         - added test for this 
257
258     * Moose::Role
259       - Roles for Moose
260         - added test and docs
261
262     * Moose::Util::TypeConstraints
263       - added the message keyword to add custom
264         error messages to type constraints        
265       
266     * Moose::Meta::Role
267       - the meta role to support Moose::Role
268         - added tests and docs
269         
270     * Moose::Meta::Class
271       - moved a number of things from Moose.pm 
272         to here, they should have been here 
273         in the first place
274
275     * Moose::Meta::Attribute
276       - moved the attribute option macros here
277         instead of putting them in Moose.pm
278
279     * Moose::Meta::TypeConstraint
280       - added the message attributes and the 
281         validate method
282         - added tests and docs for this
283
284 0.03 Thurs. March 30, 2006
285     * Moose::Cookbook
286       - added the Moose::Cookbook with 5 recipes, 
287         describing all the stuff Moose can do.
288
289     * Moose
290       - fixed an issue with &extends super class loading
291         it now captures errors and deals with inline 
292         packages correctly (bug found by mst, solution 
293         stolen from alias)
294       - added super/override & inner/augment features
295         - added tests and docs for these
296     
297     * Moose::Object
298       - BUILDALL now takes a reference of the %params 
299         that are passed to &new, and passes that to 
300         each BUILD as well.
301         
302     * Moose::Util::TypeConstraints
303       - Type constraints now survive runtime reloading
304         - added test for this
305
306         * Moose::Meta::Class
307           - fixed the way attribute defaults are handled 
308             during instance construction (bug found by chansen)
309
310     * Moose::Meta::Attribute
311       - read-only attributes now actually enforce their
312         read-only-ness (this corrected in Class::MOP as 
313         well)
314
315 0.02 Tues. March 21, 2006
316     * Moose
317       - many more tests, fixing some bugs and  
318         edge cases
319       - &extends now loads the base module with
320         UNIVERSAL::require 
321         - added UNIVERSAL::require to the 
322           dependencies list
323       ** API CHANGES **
324       - each new Moose class will also create 
325         and register a subtype of Object which 
326         correspond to the new Moose class.      
327       - the 'isa' option in &has now only 
328         accepts strings, and will DWIM in 
329         almost all cases
330     
331     * Moose::Util::TypeConstraints
332       - added type coercion features
333         - added tests for this
334         - added support for this in attributes 
335           and instance construction
336       ** API CHANGES **
337       - type construction no longer creates a 
338         function, it registers the type instead.
339         - added several functions to get the 
340           registered types 
341
342     * Moose::Object
343       - BUILDALL and DEMOLISHALL were broken 
344         because of a mis-named hash key, Whoops :)
345     
346     * Moose::Meta::Attribute
347       - adding support for coercion in the
348         autogenerated accessors
349         
350     * Moose::Meta::Class
351       - adding support for coercion in the
352         instance construction  
353
354     * Moose::Meta::TypeConstraint
355     * Moose::Meta::TypeCoercion
356           - type constraints and coercions are now 
357             full fledges meta-objects
358
359 0.01 Wed. March 15, 2006
360     - Moooooooooooooooooose!!!