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