Skip to content

Failure starting up because of dependency on old version of churn #277

Description

@hakanai

On running metric_fu, I get an error:

bucket:trunk tester$ bundle exec metric_fu
******* STARTING METRIC cane
******* ENDING METRIC cane
******* STARTING METRIC churn
bundler: failed to load command: metric_fu (/Users/tester/DevEnv/rbenv/versions/2.1.2/bin/metric_fu)
RuntimeError: child class must implement
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/churn-0.0.35/lib/churn/scm/source_control.rb:33:in `get_revisions'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/churn-0.0.35/lib/churn/calculator.rb:270:in `parse_log_for_revision_changes'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/churn-0.0.35/lib/churn/calculator.rb:95:in `emit'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/churn-0.0.35/lib/churn/calculator.rb:51:in `report'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/metric_fu-4.12.0/lib/metric_fu/metrics/churn/generator.rb:34:in `run'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/metric_fu-4.12.0/lib/metric_fu/metrics/churn/generator.rb:12:in `emit'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/metric_fu-4.12.0/lib/metric_fu/generator.rb:104:in `generate_result'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/metric_fu-4.12.0/lib/metric_fu/reporting/result.rb:48:in `add'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/metric_fu-4.12.0/lib/metric_fu/run.rb:21:in `block in measure'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/metric_fu-4.12.0/lib/metric_fu/run.rb:19:in `each'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/metric_fu-4.12.0/lib/metric_fu/run.rb:19:in `measure'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/metric_fu-4.12.0/lib/metric_fu/run.rb:9:in `run'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/metric_fu-4.12.0/lib/metric_fu/cli/helper.rb:19:in `run'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/metric_fu-4.12.0/lib/metric_fu/cli/client.rb:19:in `run'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/metric_fu-4.12.0/bin/metric_fu:9:in `<top (required)>'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/bin/metric_fu:23:in `load'
  /Users/tester/DevEnv/rbenv/versions/2.1.2/bin/metric_fu:23:in `<top (required)>'

churn themselves already had this error reported and it's fixed in the current version. I can't forcibly update to the current version in my own Gemfile, because metric_fu is pinned to an older version:

s.add_runtime_dependency "churn",                 ["~> 0.0.35"]

Here's the diagnostics, in case there is something else wrong with my environment which is causing this:

    bucket:trunk tester$ bundle exec metric_fu --debug-info
    {"Ruby"=>
      {"Engine"=>"ruby",
       "Version"=>"2.1.2",
       "Patchlevel"=>95,
       "Ripper Support"=>true,
       "Rubygems Version"=>"2.2.2",
       "Long Description"=>
        "ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]"},
     "Environment"=>
      {"VERBOSE"=>"false",
       "External Encoding"=>"UTF-8",
       "Internal Encoding"=>"",
       "Host Architecture"=>"x86_64-apple-darwin13.1.0",
       "Ruby Prefix"=>"/Users/tester/DevEnv/rbenv/versions/2.1.2",
       "Ruby Options"=>"RUBYOPT=-rbundler/setup"},
     "MetricFu"=>
      {"Version"=>"4.12.0",
       "Verbose Mode"=>false,
       "Enabled Metrics"=>
        [:cane,
         :churn,
         :flay,
         :flog,
         :stats,
         :saikuro,
         :reek,
         :roodi,
         :rails_best_practices,
         :hotspots],
       "Dependencies"=>
        [{"name"=>"flay", "version"=>[">= 2.0.1", "~> 2.1"]},
         {"name"=>"churn", "version"=>["~> 0.0.35"]},
         {"name"=>"flog", "version"=>[">= 4.1.1", "~> 4.1"]},
         {"name"=>"reek", "version"=>["< 3.0", ">= 1.3.4"]},
         {"name"=>"cane", "version"=>[">= 2.5.2", "~> 2.5"]},
         {"name"=>"rails_best_practices", "version"=>[">= 1.14.3", "~> 1.14"]},
         {"name"=>"saikuro", "version"=>[">= 1.1.3", "~> 1.1"]},
         {"name"=>"roodi", "version"=>["~> 3.1"]},
         {"name"=>"code_metrics", "version"=>["~> 0.1"]},
         {"name"=>"redcard", "version"=>[">= 0"]},
         {"name"=>"coderay", "version"=>[">= 0"]},
         {"name"=>"multi_json", "version"=>[">= 0"]},
         {"name"=>"launchy", "version"=>["~> 2.0"]},
         {"name"=>"rcov", "version"=>["~> 0.8"]}]}}

For now I guess I can just turn churn off.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions