roles
[gitmo/Moose.git] / Changes
1 Revision history for Perl extension Moose
2
3 0.06
4     * Moose 
5       - refactored the keyword exports
6         - 'with' now checks Role validaity and 
7           accepts more than one Role at a time
8         - 'extends' makes metaclass adjustments as 
9            needed to ensure metaclass compatability
10           
11     * Moose::Util::TypeConstraints
12       - added the 'enum' keyword for simple 
13         string enumerations which can be used as 
14         type constraints
15         - see example of usage in t/202_example.t
16         
17     * Moose::Object
18       - more careful checking of params to new()
19       
20     * Moose::Meta::Instance
21       - added new Instance metaclass to support 
22         the new Class::MOP instance protocol
23         
24     * Moose::Meta::Class
25       - some small changes to support the new 
26         instance protocol
27         
28     * Moose::Meta::Attribute
29       - some improvements to the accessor generation code
30         by nothingmuch
31       - some small changes to support the new 
32         instance protocol
33       - (still somewhat) experimental delegation support 
34         with the 'handles' option
35         - added several tests for this
36         - no docs for this yet
37
38 0.05 Thurs. April 27, 2006
39     * Moose
40       - keywords are now exported with Sub::Exporter
41         thanks to chansen for this commit
42       - has keyword now takes a 'metaclass' option 
43         to support custom attribute meta-classes 
44         on a per-attribute basis
45         - added tests for this  
46       - the 'has' keyword not accepts inherited slot
47         specifications (has '+foo'). This is still an 
48         experimental feature and probably not finished
49         see t/038_attribute_inherited_slot_specs.t for 
50         more details, or ask about it on #moose
51         - added tests for this
52         
53     * Moose::Role
54       - keywords are now exported with Sub::Exporter
55
56     * Moose::Utils::TypeConstraints
57       - reorganized the type constraint hierarchy, thanks
58         to nothingmuch and chansen for his help and advice 
59         on this
60         - added some tests for this
61       - keywords are now exported with Sub::Exporter
62         thanks to chansen for this commit
63
64     * Moose::Meta::Class
65       - due to changes in Class::MOP, we had to change
66         construct_instance (for the better)
67         
68     * Moose::Meta::Attribute
69       - due to changes in Class::MOP, we had to add the 
70         initialize_instance_slot method (it's a good thing)
71         
72     * Moose::Meta::TypeConstraint
73       - added type constraint unions 
74         - added tests for this
75       - added the is_subtype_of predicate method
76         - added tests for this
77
78 0.04 Sun. April 16th, 2006
79     * Moose::Role
80       - Roles can now consume other roles
81         - added tests for this
82       - Roles can specify required methods now with 
83         the requires() keyword
84         - added tests for this
85
86     * Moose::Meta::Role
87       - ripped out much of it's guts ,.. much cleaner now
88       - added required methods and correct handling of 
89         them in apply() for both classes and roles
90         - added tests for this
91       - no longer adds a does() method to consuming classes 
92         it relys on the one in Moose::Object
93       - added roles attribute and some methods to support 
94         roles consuming roles
95
96     * Moose::Meta::Attribute
97       - added support for triggers on attributes
98         - added tests for this
99       - added support for does option on an attribute 
100         - added tests for this
101         
102     * Moose::Meta::Class
103       - added support for attribute triggers in the 
104         object construction
105         - added tests for this
106     
107     * Moose
108       - Moose no longer creates a subtype for your class 
109         if a subtype of the same name already exists, this 
110         should DWIM in 99.9999% of all cases
111         
112     * Moose::Util::TypeConstraints
113       - fixed bug where incorrect subtype conflicts were 
114         being reported
115         - added test for this
116         
117     * Moose::Object
118       - this class can now be extended with 'use base' if
119         you need it, it properly loads the metaclass class now
120         - added test for this
121
122 0.03_02 Wed. April 12, 2006
123     * Moose
124       - you must now explictly use Moose::Util::TypeConstraints
125         it no longer gets exported for you automatically
126         
127     * Moose::Object
128       - new() now accepts hash-refs as well as key/value lists
129       - added does() method to check for Roles
130         - added tests for this
131
132     * Moose::Meta::Class
133       - added roles attribute along with the add_role() and 
134         does_role() methods
135         - added tests for this 
136
137     * Moose::Meta::Role
138       - now adds a does() method to consuming classes 
139         which tests the class's hierarchy for roles
140         - added tests for this
141
142 0.03_01 Mon. April 10, 2006
143     * Moose::Cookbook
144       - added new Role recipe (no content yet, only code)
145       
146     * Moose
147       - added 'with' keyword for Role support
148         - added test and docs for this
149       - fixed subtype quoting bug
150         - added test for this 
151
152     * Moose::Role
153       - Roles for Moose
154         - added test and docs
155
156     * Moose::Util::TypeConstraints
157       - added the message keyword to add custom
158         error messages to type constraints        
159       
160     * Moose::Meta::Role
161       - the meta role to support Moose::Role
162         - added tests and docs
163         
164     * Moose::Meta::Class
165       - moved a number of things from Moose.pm 
166         to here, they should have been here 
167         in the first place
168
169     * Moose::Meta::Attribute
170       - moved the attribute option macros here
171         instead of putting them in Moose.pm
172
173     * Moose::Meta::TypeConstraint
174       - added the message attributes and the 
175         validate method
176         - added tests and docs for this
177
178 0.03 Thurs. March 30, 2006
179     * Moose::Cookbook
180       - added the Moose::Cookbook with 5 recipes, 
181         describing all the stuff Moose can do.
182
183     * Moose
184       - fixed an issue with &extends super class loading
185         it now captures errors and deals with inline 
186         packages correctly (bug found by mst, solution 
187         stolen from alias)
188       - added super/override & inner/augment features
189         - added tests and docs for these
190     
191     * Moose::Object
192       - BUILDALL now takes a reference of the %params 
193         that are passed to &new, and passes that to 
194         each BUILD as well.
195         
196     * Moose::Util::TypeConstraints
197       - Type constraints now survive runtime reloading
198         - added test for this
199
200         * Moose::Meta::Class
201           - fixed the way attribute defaults are handled 
202             during instance construction (bug found by chansen)
203
204     * Moose::Meta::Attribute
205       - read-only attributes now actually enforce their
206         read-only-ness (this corrected in Class::MOP as 
207         well)
208
209 0.02 Tues. March 21, 2006
210     * Moose
211       - many more tests, fixing some bugs and  
212         edge cases
213       - &extends now loads the base module with
214         UNIVERSAL::require 
215         - added UNIVERSAL::require to the 
216           dependencies list
217       ** API CHANGES **
218       - each new Moose class will also create 
219         and register a subtype of Object which 
220         correspond to the new Moose class.      
221       - the 'isa' option in &has now only 
222         accepts strings, and will DWIM in 
223         almost all cases
224     
225     * Moose::Util::TypeConstraints
226       - added type coercion features
227         - added tests for this
228         - added support for this in attributes 
229           and instance construction
230       ** API CHANGES **
231       - type construction no longer creates a 
232         function, it registers the type instead.
233         - added several functions to get the 
234           registered types 
235
236     * Moose::Object
237       - BUILDALL and DEMOLISHALL were broken 
238         because of a mis-named hash key, Whoops :)
239     
240     * Moose::Meta::Attribute
241       - adding support for coercion in the
242         autogenerated accessors
243         
244     * Moose::Meta::Class
245       - adding support for coercion in the
246         instance construction  
247
248     * Moose::Meta::TypeConstraint
249     * Moose::Meta::TypeCoercion
250           - type constraints and coercions are now 
251             full fledges meta-objects
252
253 0.01 Wed. March 15, 2006
254     - Moooooooooooooooooose!!!