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