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