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