Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

5.0 #113

Open
25 of 58 tasks
bf4 opened this issue Aug 5, 2013 · 1 comment
Open
25 of 58 tasks

5.0 #113

bf4 opened this issue Aug 5, 2013 · 1 comment

Comments

@bf4
Copy link
Member

bf4 commented Aug 5, 2013

Checklist items to be added and updated. Currently a bit of copypaste

Plugin System / Modularity

  • Tease apart how Hotspots are calculated and compared. Remove dead code #77 f96549 Adding tests #127
    • metric, problem, score, weight, line, file, trend? suggestion?, problem_type (file, class, method)
  • Each metric configures itself and adds itself to a list of configured plugins Let each metric configure itself, and encapsulate its configuration #91
  • Rearrange classes, files, and narrow each classes public api Simpler load paths #139
  • Plugins can use an Environment object to check for ruby version, engine, capabilities, os, etc.
  • Reduce class responsibilities. Commenting the top of each class with its responsibilities should help
    • Make a proper metric grapher subclass
    • Make a proper individual metric configuration subclass
    • Make a proper formatter object
    • Make a proper metric runner object
    • Get rid of how MetricFu and MetricFu::Configuration reach into each other back and forth.
  • Logic to enable or skip metrics
  • Consider making a linter to validate metric plugins, like ActiveModel::Lint::Tests so that external metric_fu plugins can easily test themselves.
  • Extract out metrics into gems: esp. cane, saikuro, roodi, rcov. See Code Tools for consideration of what the core functionality should be

Enhancements

Bugs

Analysis

  • Make the Location and LineNumber (rcov, reek, saikuro) classes work
  • Clarify hotspot weighting See f9654924b28

Testing

Reporting

  • Make the graphs prettier. See turbulence, simplecov.
  • Make the hotspots page prettier
  • For HTML pages
    • use pjax to make it faster
    • add more links between reports to make exploration easier

Documentation

  • Understand and explain how each metric can be used, purpose of metric. e.g. complexity, duplication, smells, coverage, security, style, documentation
  • Use yard doc, remove outdated comments
  • Keep README up to date Update Readme; it's out of sync #114

Misc

  • Stabilize release task to build gem, make checksum, add and commit, tag and push to github, push to rubygems
  • Instructions for running on jenkins
  • Run with RUBYOPT=-w and address warnings
  • Consider letting RailsBestPractices run on non-rails apps. It works.
@bf4
Copy link
Member Author

bf4 commented Aug 21, 2013

Feel free to add comments here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant