Skip to content
Benjamin Fleischer edited this page Nov 6, 2013 · 1 revision

TODO list

  • Keep HISTORY.md in master up to date

Items in each category are in generally order of decreasing priority. The categories themselves are not in any priority order.

Also see CONTRIBUTING

Features

  • Make it easier to whitelist metrics when running from the commanline (cli)
  • Be able to specify folders to run against rather than just app and lib
  • Be able to run metric tools from metric_fu without shelling out
  • Allow the coverage task to specify the command it runs plus any flags (see bundler/capistrano options)
  • Add configurable logger to all output streams
  • Load all gems at config time so you fail fast if one is missing
  • Color code flog results with scale from: http://jakescruggs.blogspot.com/2008/08/whats-good-flog-score.html
  • Make the template pages prettier (hold off until 61 is merged)
  • Be able to generate historical metrics for eg gem releases (tagged with appropriate date)

Testing

  • Test against a rails app, see yui-rails
  • Determine how to test metric_fu against codebases that are not metric_fu, to ensure it works on most applications
    • This is especially true for rails applications
  • Remove / Modify Devver code from the generators/hotspots_spec and base/hotspot_analzyer_spec
  • Add tests
  • Remove useless tests
  • Remove tests that use StandardTemplate. Will require updating tests yml output, which may not be easy

Bugs / Fixes

  • See issues

Misc

Work on dependent libraries

  • Look into getting rails_best_practices, cane, and flog to use a non-MRI-specific parser, such as parser, aka not Ripper

Improvements

  • See TODO items in the code
  • Change how config works to not metaprogrammatically create so many instance variables and accessors
  • Clarify the execution path and what a metric's api should be, (repeat for templates and graphs)
  • Change MetricFu.report.add(metric) to e.g. MetricFu.generate_report(metric) to make clear that this actually runs the tool
  • Clarify hotspot weighting
  • Update the wiki with use cases
  • Review how metric_fu uses each tools to generate metrics, e.g. by shelling out commands, rake task, modifying the output, etc.
  • Understand and explain s-expressions and how they're used (or should be ) in line_numbers.rb (via the ruby_parser)
  • Remove dead code
  • Determine if CodeIssue is used, else remove it
  • Remove references to Ruport from the Devver / Caliper code
  • Understand and explain how each metric can be used
  • Improve metric_fu code metrics
  • Refactor the hotspots code
  • Is there any reason not to remove the Manifest.txt?
  • Consider removing need for the core extensions (ActiveSupport)

Documentation

Other

  • Look into issues for the tools metric_fu uses
  • Look into other tools that might work well
  • Update contributing or issue guidlines
  • Suggest commit message guidelines
  • Update the homepage

Future Thoughts

Useful Links

Ruby Guides

Perf tools