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