ready-for-release
[gitmo/Class-MOP.git] / Changes
1 Revision history for Perl extension Class-MOP.
2
3 0.29_02 Thurs. June 22, 2006
4     ++ DEVELOPER RELEASE ++
5     * Class::MOP::Class
6       - small change in &create so that it behaves 
7         properly when inherited
8       - small fix to &clone_instance
9
10 0.29_01 Fri. May 12, 2006
11     ++ DEVELOPER RELEASE ++
12       - This release works in combination with 
13         Moose 0.09_01, it is a developer release
14         because it introduces a new instance 
15         sub-protocol and has not yet been 
16         optimized.  
17
18     * Class::MOP::Class
19       - anon-classes are now properly garbage collected
20         - added tests for this 
21       - improved method modifier wrapping 
22
23     * Class::MOP::Instance
24       - added new instance protocol
25         - added tests for this
26       - changed all relevant modules and examples
27         - Class::MOP::Class
28         - Class::MOP::Attribute
29         - examples/*
30
31     * metaclass
32       - you no longer need to specify the metaclass
33         itself, if it is not there, Class::MOP::Class
34         is just assumed
35         - updated tests for this
36
37     * examples/
38       - added ArrayBasedStorage example to show 
39         instance storage using ARRAY refs instead of
40         HASH refs. 
41         - added tests for this
42       - InsideOutClass is totally revised using the 
43         new instance protocol
44         - added more tests for this
45
46 0.26 Mon. April 24, 2006
47     * Class::MOP::Class
48       - added find_attribute_by_name method
49         - added tests and docs for this
50       - some small optimizations
51
52     * Class::MOP::Attribute
53       - some small optimizations
54
55 0.25 Thurs. April 20, 2006
56     * Class::MOP::Class
57       - added create_anon_class for creating anonymous classes
58         - added tests for this
59       - added get_all_metaclasses, get_all_metaclass_names
60         and get_all_metaclass_instances method to allow
61         access to all the cached metaclass objects.
62       - attribute slot initialization is now the responsibility
63         of the attribute itself, and construct_instance now 
64         delegates appropriately
65         
66     * Class::MOP::Attribute
67       - attribute slot initialization is now the responsibility
68         of the attribute itself, so we added a method for it
69         called initialize_instance_slot
70     
71     * examples/
72       - adjusted all the examples to use the new attribute 
73         initialize_instance_slot method 
74
75 0.24 Tues. April 11, 2006
76     * Class::MOP::Class
77       - cleaned up how the before/after/around method 
78         modifiers get named with Sub::Name
79
80 0.23 Thurs. March 30, 2006
81         * Class::MOP::Class
82           - fixed the way attribute defaults are handled 
83             during instance construction (bug found by chansen)
84             
85         * Class::MOP::Attribute
86           - read-only accessors ('reader') will now die if 
87             passed more than one argument (attempting to write
88             to them basically)
89               - added tests for this
90               - adjusted all /example files to comply 
91
92 0.22 Mon. March 20, 2006
93     * Class::MOP::Class
94       - localized $@ in the *_package_variable functions
95         because otherwise, it does ugly things in Moose.
96           - added test case for this
97
98 0.21 Wed. March 15, 2006
99     * Class::MOP::Class
100       - fixed issue where metaclasses are reaped from 
101         our cache in global destruction, and so are not
102         available in DESTORY calls
103
104 0.20 Thurs. March 2, 2006
105     - removed the dependency for Clone since 
106       we no longer to deep-cloning by default.
107     
108     * Class::MOP::Method
109       - added &package_name, &name and 
110         &fully_qualified_name methods, some of 
111         which were formerly private subs in 
112         Class::MOP::Class
113       
114     * Class::MOP::Method::Wrapped
115       - allows for a method to be wrapped with 
116         before, after and around modifiers 
117           - added tests and docs for this feature
118
119     * Class::MOP::Class
120       - improved &get_package_variable
121           - &version and &superclasses now use it
122       - methods are now blessed into Class::MOP::Method
123         whenever possible
124       - added methods to install CLOS-style method modifiers 
125          - &add_before_method_modifier
126          - &add_after_method_modifier         
127          - &add_around_method_modifier
128              - added tests and docs for these
129       - added &find_next_method_by_name which finds the 
130         equivalent of SUPER::method_name
131
132 0.12 Thurs. Feb 23, 2006
133     - reduced the dependency on B, no need to always 
134       have the latest
135
136     * examples/
137       - added docs to the C3 method dispatch order test
138       - fixed missing Algorithm::C3 dependency by making 
139         the test skip if it is not installed
140
141 0.11 Mon Feb. 20, 2006
142     * examples/
143       - added example of changing method dispatch order to C3
144       
145     * Class::MOP::Class
146       - changed how clone_instance behaves, it now only does a
147         shallow clone (see docs for more details)
148         - added docs and tests
149
150 0.10 Tues Feb. 14, 2006
151     ** This release was mostly about writing more tests and 
152        cleaning out old and dusty code, the MOP should now 
153        be considered "ready to use".
154
155     - adding more tests to get coverage up a little higher,
156       mostly testing errors and edge cases.
157       - test coverage is now at 99%
158       
159     * Class::MOP
160       - no longer optionally exports to UNIVERSAL::meta or
161         creates a custom metaclass generator, use the 
162         metaclass pragma instead.
163
164     * Class::MOP::Class  
165       - fixed a number of minor issues which came up in the 
166         error/edge-case tests
167         
168     * Class::MOP::Attribute 
169       - fixed a number of minor issues which came up in the 
170         error/edge-case tests        
171      
172     * examples/
173       - fixing the AttributesWithHistory example, it was broken.
174
175 0.06 Thurs Feb. 9, 2006
176     * metaclass
177       - adding new metaclass pragma to make setting up the 
178         metaclass a little more straightforward
179         
180     * Class::MOP
181       - clean up bootstrapping to include more complete 
182         attribute definitions for Class::MOP::Class and 
183         Class::MOP::Attribute (accessors, readers, writers, 
184         etc.) ... it is redundant, but is useful meta-info
185         to have around.
186
187     * Class::MOP::Class
188       - fixing minor meta-circularity issue with &meta, it 
189         is now more useful for subclasses
190       - added &get_attribute_map as an accessor for the 
191         hash of attribute meta objects
192       - &compute_all_applicable_attributes now just returns
193         the attribute meta-object, rather than the HASH ref
194         since all the same info can be gotten from the 
195         attribute meta-object itself
196           - updated docs & tests to reflect
197       - added &clone_instance method which does a deep clone
198         of the instance structure created by &construct_instance
199           - added docs & tests for this
200           - added Clone as a dependency
201       - added &new_object and &clone_object convience methods to
202         return blessed new or cloned instances
203           - they handle Class::MOP::Class singletons correctly too
204           - added docs & tests for this
205       - cleaned up the &constuct_class_instance so that it behaves
206         more like &construct_instance (and managed the singletons too)
207       - added the &check_metaclass_compatibility method to make sure
208         that metaclasses are upward and downward compatible.
209           - added tests and docs for this
210           
211     * examples/
212       - adjusting code to use the &Class::MOP::Class::meta
213         fix detailed above
214       - adjusting code to use the metaclass pragma
215       
216 0.05 Sat Feb. 4, 2006
217     * Class::MOP::Class
218       - added the &attribute_metaclass and &method_metaclass
219         attributes which contain a metaclass name to use for 
220         attributes/methods respectively
221     
222     * Class::MOP
223       - bootstrap additional attributes for Class::MOP::Class 
224         
225     * examples/
226       - adjusted the example code and tests to use the new
227         &attribute_metaclass feature of Class::MOP::Class
228       - added new example:
229         - LazyClass
230
231 0.04 Fri Feb. 3, 2006
232     * Class::MOP::Class
233       - some documentation suggestions from #perl6
234     
235     * Class::MOP::Attribute
236       - improved error messages    
237     
238     * examples/
239       - added new examples:
240         - AttributesWithHistory
241         - ClassEncapsultedAttributes
242
243 0.03 Fri Feb. 3, 2006
244     - converted to Module::Build instead of EU::MM
245     
246     * Class::MOP::Attribute
247       - refactored method generation code
248       - attributes are now associated with class directly
249     
250     * examples/
251       - refactored the InsideOut example to take advantage 
252         of the Class::MOP::Attribute refactoring
253       - changed example files to .pod files and hide thier
254         package names from PAUSE (I don't want to own these
255         namespaces really, they are just examples)
256
257 0.02 Thurs Feb. 2, 2006
258     - moving examples from t/lib/* to examples/*
259         - adding POD documentation to the examples
260
261 0.01 Thurs Feb. 2, 2006
262     - Initial release