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