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