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