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