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