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