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