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: 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)
-
maybe see reek tree dresser and reek code parser or
-
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¶ ↑
-
Get the rdoc (or yard) published
-
Add more inline documentation
-
See other documentation code for examples to improve ours:
-
github.com/charliesome/better_errors/blob/master/CONTRIBUTING.md
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
Future Thoughts¶ ↑
-
Look into how to manage plugins or otherwise load abritrary metrics
-
Look into adding
-
github.com/metricfu/code_statistics 1
-
or extract from rails into a gem rake task can be modified by rspec with the calculator and class
-
-
brakeman github.com/metricfu/brakeman
-
Other intersting libraries to consider:
-
gist.github.com/4562865 for generating Flog on ERB templates by jamesmartin
-
github.com/chad/turbulence churn and complexity (flog)
-
github.com/metricfu/heckle (test mutation)
-
github.com/mbj/mutant (test mutation)
-
github.com/metricfu/repodepot-ruby twitter.com/jakescruggs/status/70521977303076865