DebugClients/Python/coverage/doc/CHANGES.txt

changeset 0
de9c2efb9d02
child 31
744cd0b4b8cd
equal deleted inserted replaced
-1:000000000000 0:de9c2efb9d02
1 ------------------------------
2 Change history for Coverage.py
3 ------------------------------
4
5
6 Version 3.0.1, 7 July 2009
7 --------------------------
8
9 - Removed the recursion limit in the tracer function. Previously, code that
10 ran more than 500 frames deep would crash.
11
12 - Fixed a bizarre problem involving pyexpat, whereby lines following XML parser
13 invocations could be overlooked.
14
15 - On Python 2.3, coverage.py could mis-measure code with exceptions being
16 raised. This is now fixed.
17
18 - The coverage.py code itself will now not be measured by coverage.py, and no
19 coverage modules will be mentioned in the nose --with-cover plugin.
20
21 - When running source files, coverage.py now opens them in universal newline
22 mode just like Python does. This lets it run Windows files on Mac, for
23 example.
24
25
26 Version 3.0, 13 June 2009
27 -------------------------
28
29 - Fixed the way the Python library was ignored. Too much code was being
30 excluded the old way.
31
32 - Tabs are now properly converted in HTML reports. Previously indentation was
33 lost.
34
35 - Nested modules now get a proper flat_rootname. Thanks, Christian Heimes.
36
37
38 Version 3.0b3, 16 May 2009
39 --------------------------
40
41 - Added parameters to coverage.__init__ for options that had been set on the
42 coverage object itself.
43
44 - Added clear_exclude() and get_exclude_list() methods for programmatic
45 manipulation of the exclude regexes.
46
47 - Added coverage.load() to read previously-saved data from the data file.
48
49 - Improved the finding of code files. For example, .pyc files that have been
50 installed after compiling are now located correctly. Thanks, Detlev
51 Offenbach.
52
53 - When using the object api (that is, constructing a coverage() object), data
54 is no longer saved automatically on process exit. You can re-enable it with
55 the auto_data=True parameter on the coverage() constructor. The module-level
56 interface still uses automatic saving.
57
58
59 Version 3.0b2, 30 April 2009
60 ----------------------------
61
62 HTML reporting, and continued refactoring.
63
64 - HTML reports and annotation of source files: use the new -b (browser) switch.
65 Thanks to George Song for code, inspiration and guidance.
66
67 - Code in the Python standard library is not measured by default. If you need
68 to measure standard library code, use the -L command-line switch during
69 execution, or the cover_pylib=True argument to the coverage() constructor.
70
71 - Source annotation into a directory (-a -d) behaves differently. The
72 annotated files are named with their hierarchy flattened so that same-named
73 files from different directories no longer collide. Also, only files in the
74 current tree are included.
75
76 - coverage.annotate_file is no longer available.
77
78 - Programs executed with -x now behave more as they should, for example,
79 __file__ has the correct value.
80
81 - .coverage data files have a new pickle-based format designed for better
82 extensibility.
83
84 - Removed the undocumented cache_file argument to coverage.usecache().
85
86
87 Version 3.0b1, 7 March 2009
88 ---------------------------
89
90 Major overhaul.
91
92 - Coverage is now a package rather than a module. Functionality has been split
93 into classes.
94
95 - The trace function is implemented in C for speed. Coverage runs are now
96 much faster. Thanks to David Christian for productive micro-sprints and
97 other encouragement.
98
99 - Executable lines are identified by reading the line number tables in the
100 compiled code, removing a great deal of complicated analysis code.
101
102 - Precisely which lines are considered executable has changed in some cases.
103 Therefore, your coverage stats may also change slightly.
104
105 - The singleton coverage object is only created if the module-level functions
106 are used. This maintains the old interface while allowing better
107 programmatic use of Coverage.
108
109 - The minimum supported Python version is 2.3.
110
111
112 Version 2.85, 14 September 2008
113 -------------------------------
114
115 - Add support for finding source files in eggs. Don't check for
116 morf's being instances of ModuleType, instead use duck typing so that
117 pseudo-modules can participate. Thanks, Imri Goldberg.
118
119 - Use os.realpath as part of the fixing of filenames so that symlinks won't
120 confuse things. Thanks, Patrick Mezard.
121
122
123 Version 2.80, 25 May 2008
124 -------------------------
125
126 - Open files in rU mode to avoid line ending craziness. Thanks, Edward Loper.
127
128
129 Version 2.78, 30 September 2007
130 -------------------------------
131
132 - Don't try to predict whether a file is Python source based on the extension.
133 Extensionless files are often Pythons scripts. Instead, simply parse the file
134 and catch the syntax errors. Hat tip to Ben Finney.
135
136
137 Version 2.77, 29 July 2007
138 --------------------------
139
140 - Better packaging.
141
142
143 Version 2.76, 23 July 2007
144 --------------------------
145
146 - Now Python 2.5 is *really* fully supported: the body of the new with
147 statement is counted as executable.
148
149
150 Version 2.75, 22 July 2007
151 --------------------------
152
153 - Python 2.5 now fully supported. The method of dealing with multi-line
154 statements is now less sensitive to the exact line that Python reports during
155 execution. Pass statements are handled specially so that their disappearance
156 during execution won't throw off the measurement.
157
158
159 Version 2.7, 21 July 2007
160 -------------------------
161
162 - "#pragma: nocover" is excluded by default.
163
164 - Properly ignore docstrings and other constant expressions that appear in the
165 middle of a function, a problem reported by Tim Leslie.
166
167 - coverage.erase() shouldn't clobber the exclude regex. Change how parallel
168 mode is invoked, and fix erase() so that it erases the cache when called
169 programmatically.
170
171 - In reports, ignore code executed from strings, since we can't do anything
172 useful with it anyway.
173
174 - Better file handling on Linux, thanks Guillaume Chazarain.
175
176 - Better shell support on Windows, thanks Noel O'Boyle.
177
178 - Python 2.2 support maintained, thanks Catherine Proulx.
179
180 - Minor changes to avoid lint warnings.
181
182
183 Version 2.6, 23 August 2006
184 ---------------------------
185
186 - Applied Joseph Tate's patch for function decorators.
187
188 - Applied Sigve Tjora and Mark van der Wal's fixes for argument handling.
189
190 - Applied Geoff Bache's parallel mode patch.
191
192 - Refactorings to improve testability. Fixes to command-line logic for parallel
193 mode and collect.
194
195
196 Version 2.5, 4 December 2005
197 ----------------------------
198
199 - Call threading.settrace so that all threads are measured. Thanks Martin
200 Fuzzey.
201
202 - Add a file argument to report so that reports can be captured to a different
203 destination.
204
205 - coverage.py can now measure itself.
206
207 - Adapted Greg Rogers' patch for using relative filenames, and sorting and
208 omitting files to report on.
209
210
211 Version 2.2, 31 December 2004
212 -----------------------------
213
214 - Allow for keyword arguments in the module global functions. Thanks, Allen.
215
216
217 Version 2.1, 14 December 2004
218 -----------------------------
219
220 - Return 'analysis' to its original behavior and add 'analysis2'. Add a global
221 for 'annotate', and factor it, adding 'annotate_file'.
222
223
224 Version 2.0, 12 December 2004
225 -----------------------------
226
227 Significant code changes.
228
229 - Finding executable statements has been rewritten so that docstrings and
230 other quirks of Python execution aren't mistakenly identified as missing
231 lines.
232
233 - Lines can be excluded from consideration, even entire suites of lines.
234
235 - The filesystem cache of covered lines can be disabled programmatically.
236
237 - Modernized the code.
238
239
240 Earlier History
241 ---------------
242
243 2001-12-04 GDR Created.
244
245 2001-12-06 GDR Added command-line interface and source code annotation.
246
247 2001-12-09 GDR Moved design and interface to separate documents.
248
249 2001-12-10 GDR Open cache file as binary on Windows. Allow simultaneous -e and
250 -x, or -a and -r.
251
252 2001-12-12 GDR Added command-line help. Cache analysis so that it only needs to
253 be done once when you specify -a and -r.
254
255 2001-12-13 GDR Improved speed while recording. Portable between Python 1.5.2
256 and 2.1.1.
257
258 2002-01-03 GDR Module-level functions work correctly.
259
260 2002-01-07 GDR Update sys.path when running a file with the -x option, so that
261 it matches the value the program would get if it were run on its own.

eric ide

mercurial