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