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