8000 5.0 · Issue #113 · metricfu/metric_fu · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
5.0 #113
Open
Open
5.0#113
@bf4

Description

@bf4

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0