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