diff options
| -rw-r--r-- | MANIFEST.in | 1 | ||||
| -rw-r--r-- | TODO.txt | 285 | 
2 files changed, 0 insertions, 286 deletions
diff --git a/MANIFEST.in b/MANIFEST.in index f79021f7..c9b345e1 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -10,7 +10,6 @@ include MANIFEST.in  include Makefile  include NOTICE.txt  include README.rst -include TODO.txt  include __main__.py  include .travis.yml  include appveyor.yml diff --git a/TODO.txt b/TODO.txt deleted file mode 100644 index f6036d2e..00000000 --- a/TODO.txt +++ /dev/null @@ -1,285 +0,0 @@ -Coverage.py TODO - -Key: -    * Heading -    - Not done yet. -    + Done. -    x Not going to do. - -* 4.0 - -- What defaults should change? -    x --source = . ? -    x --branch = True ? - -- Remove 2.3, 2.4, 2.5 limitations -    + set, sorted, reversed, rpartition -    + generator expressions -    + decorators -    + collections.defaultdict -    + .startswith((,)) -    + "with" statements -    - .format() ? -    + try/except/finally -    + with assertRaises -    + addCleanup instead of tearDown -    + exec statement can look like a function in py2 (since when?) -    - runpy ? -    + we can use "except ExcClass as e:" - -- Plugins -    + Clean up -    + implement plugin support in CTracer -    + remove plugin support from PyTracer -    x add services: -        - filelocator -        - warning -    - dynamic_source_filename: return should be a canonical path -        - update the omit test to use "quux*" instead of "*quux*" -    + docs -+ Make reports use filenames, not module names -- documentation -    - test helpers -    + cov.config["run:branch"] api (well, coverage.get_option etc) -    + "added in 4.0" -    - tweaks to theme? -    - Plugins! -        Once per process -        Once per file -            - create a file tracer -            - call its has_dynamic_source_file() -        Once per call -        Once per line -- build process -    - don't publish to nedbat.com any more (but still need the sample html reports) -        + don't need .px tooling -        - write a new nedbat.com/code/coverage page. -    - all doc links should point to rtfd -+ Remove code only run on <2.6 -+ Change data file to json -+ Create data api -+ gevent, etc. -+ Remove the old command-line syntax -    + A pain, b/c of the structure of the tests. -    + BTW: make an easier way to write those tests. - -- tests -    - test the kit has the right contents -    - test the kit installs the right stuff - - -* --source stuff: -    + warn if a package is never found. -    + warn if no data was collected -    - tie --source into reporting - -* Soon - -+ Better omit handling that ignores files during measurement. -    - Deal with ~ in specified paths correctly. -+ while TRUE claims to be partial. -    + A way to mark lines as partial branches, with a regex? -        + Default to "while True:", "while 1:" -+ HTML keyboard short cuts - - -* 3.2 - -+ Some kind of indication in the HTML where yellow lines aren't going. -- Profile the reporting code: it's REALLY slow. -    - parser is doing some redundant work. -+ Analysis class should do rolling up of stats also (actually Numbers) -+ Update docs for --branch. -x self.coverage.data.has_arcs is ugly. -+ Branches that never jump to nocover lines shouldn't be marked as partial. -    (see top of test_cogapp for examples) -+ Maybe turning off yellow lines should make those lines green? -+ A missing branch to leave the function shows an annotation of -1. Now "exit". -+ XML report needs to get branch information. -+ Add branch info to "coverage debug data" -+ Polish up the help, and double-check the docs. - - -* Speed - -+ C extension collector -- bitvector in trace extension. -- Ignore certain modules -+ Record linenos rather than (file,lineno) pairs in tracer. -x Tricky swapping of collector like figleaf, pycov, et al. (Don't need to do -    this with C collector). -- Seems like there should be a faster way to manage all the line number sets in -    CodeParser.raw_parse. -- If tracing, canonical_filename_cache overlaps with should_trace_cache.  Skip -    canonical_filename_cache. Maybe it isn't even worth it... -- Would pre-allocating line number integers make the C tracer faster? It would -    use less memory. - - -* Accuracy - -- Record magic number of module to ensure code hasn't changed -- Record version of coverage data file, so we can update what's stored there. -- Record options in coverage data file, so multiple runs are certain to make -    sense together. -- Do I still need the lines in annotate_file that deal specially with "else"? - - -* Power - -+ Branch coverage -    Titus' idea: -        1: if a: -        2:     b = 2 -        3: c = 3 -    if the coverage data shows 1,2,3, it was if-then.  if it's 1,3, then the -    missing else was executed. -+ API for getting coverage data. -- Instruction tracing instead of line tracing. -- Path tracing (how does this even work?) -- Count execution of lines -- Track callers of functions (ala std module trace) -- Method/Class/Module coverage reporting. -- .coverage files that can be kept separate, rather than accumulated. -- test/coverage map: http://rbtcollins.wordpress.com/2009/09/16/back-from-hiatus/ -    - Similar to figleaf's sections. - - -* Convenience - -- Command line modules should also be directories, meaning all the modules in that -    directory. -- Why can't a morf also be a string, the name of a module? -- ignore by module as well as file? -+ Use a .coveragerc file to control coverage.py without the programmatic API. -- Add a --data switch to explicitly control the data file on the command line. -x Why can't you specify execute (-x) and report (-r) in the same invocation? -    Maybe just because -x needs the rest of the command line? -+ Support 2.3 - 3.1! -    http://pythonology.blogspot.com/2009/02/making-code-run-on-python-20-through-30.html -    http://www.rfk.id.au/blog/entry/preparing-pyenchant-for-python-3 -    http://pydev.blogspot.com/2008/11/making-code-work-in-python-2-and-3.html -    + Explicitly set pickle protocol to 2. -- An inference mode that marks lines as executed if they "must have been" executed: -    class definitions, etc, when coverage is started after the class is defined. -- Different categories of exclude pragma? So you can enable and disable them -    from the command line, to reconsider exclusions. -+ Reporting on files never touched by coverage.py (package completeness) -- A setup.py command? http://jeetworks.org/node/50 -- Deltas: indicate the change in coverage percentage from the last run. -+ Show lines missing rather than lines run in the reporting, since that's what -  you need to focus on. - - -* Beauty - -+ HTML report -    - Colored bars indicating coverage per file. -    - Package navigation. -    - Rolled-up statistics. -    - Some way to focus in on red and yellow -        - Show only lines near highlights? -        + Jump to next highlight? -            + Keyboard navigation: j and k. -    - Cookie for changes to pyfile.html state. -    + Clickable column headers on the index page. -    + Syntax coloring in HTML report. -    + Dynamic effects in HTML report. -    + Footer in reports pointing to coverage.py home page. -    + Baseline grid for linenumber font. -    + Separate out css and HTML. -    + Does it work right with utf-8 source files? http://www.python.org/dev/peps/pep-0263/ -    - Use vim modeline to determine tab width: http://vimdoc.sourceforge.net/htmldoc/options.html#modeline - - -* Community - -+ New docs, rather than pointing to Gareth's -    + Min python version is 2.3. -    - Three phases of work: -        - Collection -        - Analysis -        - Reporting -    - Distinction between: -        - ignore (files not to collect) -        - exclude (lines not to report as missed) -        - omit (files not to report) -    - Changes from coverage.py 2.x: -        - Bare "except:" lines now count as executable code. -        - Double function decorators: all decorator lines count as executable code. -    x Document the .coverage file format. -    + HTML reporting. -        - Much more detail about what's in the report. -    - References between pages are off: -        - They have <em> tags around them. -        - They use #anchors that don't survive the px->html conversion. -+ Be sure --help text is complete (-i is missing). -+ Host the project somewhere with a real bug tracker: bitbucket.org -+ Point discussion to TIP -- PEP 8 compliance? - - -* Programmability - -+ Don't use sys.exit in CoverageScript. -+ Remove singleton -    + Initialization of instance variables in the class. - - -* Installation - -x How will coverage.py package install over coverage.py module? -x pip can't install it: it reads the coverage.py html page, and finds the kit link, -    but then can't handle the root-relative link. - - -* Modernization - -+ Decide on minimum supported version -    + 2.3 -    + Get rid of the basestring protection -    + Use enumerate -    + Use sets instead of dicts -+ Switch from getopt to optparse. -+ Get rid of the recursive nonsense. -+ Docstrings. -+ Remove huge document-style comments. -- Better names: -    + self.cache -> self.cache_filename -> CoverageData.filename -    + self.usecache -> CoverageData.use_file -- More classes: -    - Module munging -    + Coverage data files -+ Why are some imports at the top of the file, and some in functions? -+ Get rid of sys.exitfunc use. -+ True and False (with no backward adaptation: the constants are new in 2.2.1) -+ Get rid of compiler module -    + In analyzing code -    + In test_coverage.py -+ Style: -    + lineno -    + filename - - -* Correctness - -- What does -p (parallel mode) mean with -e (erase data)? - - -* Tests - -+ Switch to a real test runner, like nose. -+ Test both the C trace function and the Python trace function. -+ parser.py has no direct tests. -+ Tests about the .coverage file. -+ Tests about the --long-form of arguments. -+ Tests about overriding the .coverage filename. -- Tests about parallel mode. -+ Tests about assigning a multi-line string. -- Tests about tricky docstrings. -+ Coverage test coverage.py! -- Tests that tracing stops after calling stop() -- More intensive thread testing. -x Tests about the "import __main__" in cmdline.py -+ What happens if the -x script raises an exception? -- Test that the kit has all the proper contents.  | 
