Closed emaiax closed 8 years ago
@emaiax sorry for the slow response, this must've gotten caught in one of my mail filters
Do you have a copy of the Gemfile.lock
for your project?
@jbodah same happened here.
source "https://rubygems.org"
ruby "2.2.2"
gem "rails", "4.2.4"
gem "pg"
gem "puma"
# heroku
group :production do
gem "rails_12factor"
gem "rack-timeout"
end
gem "slim"
gem "uglifier"
gem "sass-rails"
gem "compass-rails"
gem "sprockets-rails"
gem "font-awesome-rails"
gem "rails-i18n"
gem "settingslogic"
gem "lograge"
gem "bugsnag"
gem "devise"
gem "responders"
gem "simple_form"
gem "nested_form"
gem "kaminari"
gem "pundit"
gem "enumerate_it"
gem "draper"
gem "money-rails"
gem "decent_exposure"
gem "acts_as_shopping_cart"
gem "aws-sdk"
# busca de cep
gem "brcep"
gem "postmon_ruby"
gem "dead_gems"
group :development, :test do
gem "vcr"
gem "ffaker"
gem "pry-meta"
gem "capybara"
gem "rspec-rails"
gem "poltergeist"
gem "letter_opener"
gem "better_errors"
gem "database_cleaner"
gem "binding_of_caller"
gem "factory_girl_rails"
gem "rubocop", require: false
gem "simplecov", require: false
gem "shoulda-matchers", require: false
end
@emaiax could you post your Gemfile.lock file?
GEM
remote: https://rubygems.org/
specs:
actionmailer (4.2.4)
actionpack (= 4.2.4)
actionview (= 4.2.4)
activejob (= 4.2.4)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 1.0, >= 1.0.5)
actionpack (4.2.4)
actionview (= 4.2.4)
activesupport (= 4.2.4)
rack (~> 1.6)
rack-test (~> 0.6.2)
rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionview (4.2.4)
activesupport (= 4.2.4)
builder (~> 3.1)
erubis (~> 2.7.0)
rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
activejob (4.2.4)
activesupport (= 4.2.4)
globalid (>= 0.3.0)
activemodel (4.2.4)
activesupport (= 4.2.4)
builder (~> 3.1)
activerecord (4.2.4)
activemodel (= 4.2.4)
activesupport (= 4.2.4)
arel (~> 6.0)
activesupport (4.2.4)
i18n (~> 0.7)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
acts_as_shopping_cart (0.3.0)
money-rails (~> 1.3)
rails (~> 4)
addressable (2.3.8)
arel (6.0.3)
ast (2.1.0)
astrolabe (1.3.1)
parser (~> 2.2)
awesome_print (1.6.1)
aws-sdk (2.1.24)
aws-sdk-resources (= 2.1.24)
aws-sdk-core (2.1.24)
jmespath (~> 1.0)
aws-sdk-resources (2.1.24)
aws-sdk-core (= 2.1.24)
bcrypt (3.1.10)
better_errors (2.1.1)
coderay (>= 1.0.0)
erubis (>= 2.6.6)
rack (>= 0.9.0)
binding_of_caller (0.7.2)
debug_inspector (>= 0.0.1)
brcep (3.3.0)
bugsnag (2.8.12)
json (~> 1.7, >= 1.7.7)
builder (3.2.2)
byebug (5.0.0)
columnize (= 0.9.0)
capybara (2.5.0)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
xpath (~> 2.0)
chunky_png (1.3.4)
cliver (0.3.2)
coderay (1.1.0)
columnize (0.9.0)
compass (1.0.3)
chunky_png (~> 1.2)
compass-core (~> 1.0.2)
compass-import-once (~> 1.0.5)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9)
sass (>= 3.3.13, < 3.5)
compass-core (1.0.3)
multi_json (~> 1.0)
sass (>= 3.3.0, < 3.5)
compass-import-once (1.0.5)
sass (>= 3.2, < 3.5)
compass-rails (2.0.5)
compass (~> 1.0.0)
sass-rails (< 5.1)
sprockets (< 2.13)
database_cleaner (1.5.0)
dead_gems (0.0.2)
spy_rb
thor
debug_inspector (0.0.2)
decent_exposure (2.3.2)
devise (3.5.2)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 3.2.6, < 5)
responders
thread_safe (~> 0.1)
warden (~> 1.2.3)
diff-lcs (1.2.5)
docile (1.1.5)
draper (2.1.0)
actionpack (>= 3.0)
activemodel (>= 3.0)
activesupport (>= 3.0)
request_store (~> 1.0)
enumerate_it (1.2.8)
activesupport (>= 3.0.0)
erubis (2.7.0)
execjs (2.6.0)
factory_girl (4.5.0)
activesupport (>= 3.0.0)
factory_girl_rails (4.5.0)
factory_girl (~> 4.5.0)
railties (>= 3.0.0)
ffaker (2.1.0)
ffi (1.9.10)
font-awesome-rails (4.4.0.0)
railties (>= 3.2, < 5.0)
globalid (0.3.6)
activesupport (>= 4.1.0)
hike (1.2.3)
i18n (0.7.0)
jmespath (1.1.3)
json (1.8.3)
kaminari (0.16.3)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
launchy (2.4.3)
addressable (~> 2.3)
letter_opener (1.4.1)
launchy (~> 2.2)
lograge (0.3.4)
actionpack (>= 3)
activesupport (>= 3)
railties (>= 3)
loofah (2.0.3)
nokogiri (>= 1.5.9)
mail (2.6.3)
mime-types (>= 1.16, < 3)
method_source (0.8.2)
mime-types (2.6.2)
mini_portile (0.6.2)
minitest (5.8.1)
monetize (1.1.0)
money (~> 6.5.0)
money (6.5.1)
i18n (>= 0.6.4, <= 0.7.0)
money-rails (1.4.1)
activesupport (>= 3.0)
monetize (~> 1.1.0)
money (~> 6.5.0)
railties (>= 3.0)
multi_json (1.11.2)
nested_form (0.3.2)
nokogiri (1.6.6.2)
mini_portile (~> 0.6.0)
orm_adapter (0.5.0)
parser (2.2.2.6)
ast (>= 1.1, < 3.0)
pg (0.18.3)
poltergeist (1.7.0)
capybara (~> 2.1)
cliver (~> 0.3.1)
multi_json (~> 1.0)
websocket-driver (>= 0.2.0)
postmon_ruby (3.0.1)
json (~> 1.8.1)
powerpack (0.1.1)
pry (0.10.2)
coderay (~> 1.1.0)
method_source (~> 0.8.1)
slop (~> 3.4)
pry-byebug (3.2.0)
byebug (~> 5.0)
pry (~> 0.10)
pry-meta (0.0.10)
awesome_print
pry
pry-byebug
pry-remote
pry-remote (0.1.8)
pry (~> 0.9)
slop (~> 3.0)
puma (2.14.0)
pundit (1.0.1)
activesupport (>= 3.0.0)
rack (1.6.4)
rack-test (0.6.3)
rack (>= 1.0)
rack-timeout (0.3.2)
rails (4.2.4)
actionmailer (= 4.2.4)
actionpack (= 4.2.4)
actionview (= 4.2.4)
activejob (= 4.2.4)
activemodel (= 4.2.4)
activerecord (= 4.2.4)
activesupport (= 4.2.4)
bundler (>= 1.3.0, < 2.0)
railties (= 4.2.4)
sprockets-rails
rails-deprecated_sanitizer (1.0.3)
activesupport (>= 4.2.0.alpha)
rails-dom-testing (1.0.7)
activesupport (>= 4.2.0.beta, < 5.0)
nokogiri (~> 1.6.0)
rails-deprecated_sanitizer (>= 1.0.1)
rails-html-sanitizer (1.0.2)
loofah (~> 2.0)
rails-i18n (4.0.5)
i18n (~> 0.6)
railties (~> 4.0)
rails_12factor (0.0.3)
rails_serve_static_assets
rails_stdout_logging
rails_serve_static_assets (0.0.4)
rails_stdout_logging (0.0.4)
railties (4.2.4)
actionpack (= 4.2.4)
activesupport (= 4.2.4)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rainbow (2.0.0)
rake (10.4.2)
rb-fsevent (0.9.6)
rb-inotify (0.9.5)
ffi (>= 0.5.0)
request_store (1.2.0)
responders (2.1.0)
railties (>= 4.2.0, < 5)
rspec-core (3.3.2)
rspec-support (~> 3.3.0)
rspec-expectations (3.3.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.3.0)
rspec-mocks (3.3.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.3.0)
rspec-rails (3.3.3)
actionpack (>= 3.0, < 4.3)
activesupport (>= 3.0, < 4.3)
railties (>= 3.0, < 4.3)
rspec-core (~> 3.3.0)
rspec-expectations (~> 3.3.0)
rspec-mocks (~> 3.3.0)
rspec-support (~> 3.3.0)
rspec-support (3.3.0)
rubocop (0.34.2)
astrolabe (~> 1.3)
parser (>= 2.2.2.5, < 3.0)
powerpack (~> 0.1)
rainbow (>= 1.99.1, < 3.0)
ruby-progressbar (~> 1.4)
ruby-progressbar (1.7.5)
sass (3.4.18)
sass-rails (5.0.4)
railties (>= 4.0.0, < 5.0)
sass (~> 3.1)
sprockets (>= 2.8, < 4.0)
sprockets-rails (>= 2.0, < 4.0)
tilt (>= 1.1, < 3)
settingslogic (2.0.9)
shoulda-matchers (3.0.0)
activesupport (>= 4.0.0)
simple_form (3.2.0)
actionpack (~> 4.0)
activemodel (~> 4.0)
simplecov (0.10.0)
docile (~> 1.1.0)
json (~> 1.8)
simplecov-html (~> 0.10.0)
simplecov-html (0.10.0)
slim (3.0.6)
temple (~> 0.7.3)
tilt (>= 1.3.3, < 2.1)
slop (3.6.0)
sprockets (2.12.4)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sprockets-rails (2.3.3)
actionpack (>= 3.0)
activesupport (>= 3.0)
sprockets (>= 2.8, < 4.0)
spy_rb (0.5.0)
temple (0.7.6)
thor (0.19.1)
thread_safe (0.3.5)
tilt (1.4.1)
tzinfo (1.2.2)
thread_safe (~> 0.1)
uglifier (2.7.2)
execjs (>= 0.3.0)
json (>= 1.8.0)
vcr (2.9.3)
warden (1.2.3)
rack (>= 1.0)
websocket-driver (0.6.2)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.2)
xpath (2.0.0)
nokogiri (~> 1.3)
PLATFORMS
ruby
DEPENDENCIES
acts_as_shopping_cart
aws-sdk
better_errors
binding_of_caller
brcep
bugsnag
capybara
compass-rails
database_cleaner
dead_gems
decent_exposure
devise
draper
enumerate_it
factory_girl_rails
ffaker
font-awesome-rails
kaminari
letter_opener
lograge
money-rails
nested_form
pg
poltergeist
postmon_ruby
pry-meta
puma
pundit
rack-timeout
rails (= 4.2.4)
rails-i18n
rails_12factor
responders
rspec-rails
rubocop
sass-rails
settingslogic
shoulda-matchers
simple_form
simplecov
slim
sprockets-rails
uglifier
vcr
BUNDLED WITH
1.10.6
Should be fixed in 0.0.3 (a2faf843c5511361ebd12542986be93fee36a607)
Awesome! Let me test this. :+1:
$ irb
irb(main):001:require 'dead_gems'
=> true
irb(main):002:0> DeadGems.find("/Users/emaiax/Code/old_project", "bundle exec rake test")
Errno::ENOENT: No such file or directory @ rb_sysopen - test/test_helper.rb
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/dead_gems-0.0.3/lib/dead_gems.rb:75:in `initialize'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/dead_gems-0.0.3/lib/dead_gems.rb:75:in `open'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/dead_gems-0.0.3/lib/dead_gems.rb:75:in `ensure in apply_environment_patch'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/dead_gems-0.0.3/lib/dead_gems.rb:76:in `apply_environment_patch'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/dead_gems-0.0.3/lib/dead_gems.rb:18:in `find'
from (irb):1
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands/console.rb:110:in `start'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands/console.rb:9:in `start'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:68:in `console'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
@jbodah tested agains 0.0.3 :/
@emaiax
Do you have a file "test/test_helper"? I might have to add a File.expand_path
call.
Bumped to 0.1.3 which adds a test_helper
option. E.g.
DeadGems.find("/my_proj", "bundle exec rake test", test_helper: "spec/spec_helper")
Actually, I don't. I use rspec, so the test folder became spec folder.
— Eduardo Maia
On Fri, Oct 23, 2015 at 9:34 PM, Josh Bodah notifications@github.com wrote:
@emaiax Do you have a file in "test/test_helper"? I might have to add a
File.expand_path
call. Bumped to 0.1.3 which adds atest_helper
option. E.g.DeadGems.find("/my_proj", "bundle exec rake test", test_helper: "spec/spec_helper")
Reply to this email directly or view it on GitHub: https://github.com/jbodah/dead_gems/issues/2#issuecomment-150716960
@emaiax I'm assuming that specifying the test_helper
option worked?
@jbodah not really :(
irb(main):005:0> DeadGems.find("/Users/emaiax/Code/proj", "bundle exec rake test", test_helper: "/Users/emaiax/Code/proj/spec/spec_helper.rb")
Errno::ENOENT: No such file or directory @ rb_sysopen - dead_gems.out
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/dead_gems-0.1.4/lib/dead_gems.rb:84:in `read'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/dead_gems-0.1.4/lib/dead_gems.rb:84:in `block in run'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.10.6/lib/bundler.rb:245:in `block in with_clean_env'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.10.6/lib/bundler.rb:232:in `with_original_env'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.10.6/lib/bundler.rb:238:in `with_clean_env'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/dead_gems-0.1.4/lib/dead_gems.rb:80:in `run'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/dead_gems-0.1.4/lib/dead_gems.rb:20:in `block in find'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/dead_gems-0.1.4/lib/dead_gems.rb:73:in `apply_environment_patch'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/dead_gems-0.1.4/lib/dead_gems.rb:19:in `find'
from (irb):5
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands/console.rb:110:in `start'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands/console.rb:9:in `start'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:68:in `console'
from /Users/emaiax/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:39:in `run_comm
Tested against 0.1.4.
oh boy, this will be fixed some day I promise :snowman:
modified it to use a Tempfile instead of "deadgems.out" which may fix things
@jbodah it seems to be working fine with 0.1.5
$ irb
irb(main):001:0> require 'dead_gems'
=> true
irb(main):002:0> DeadGems.find("/Users/emaiax/Code/pnn", "bundle exec rake test", test_helper: "/Users/emaiax/Code/pnn/spec/spec_helper.rb")
=> ["acts_as_shopping_cart", "aws-sdk", "better_errors", "binding_of_caller", "brcep", "bugsnag", "capybara", "compass-rails", "database_cleaner", "dead_gems", "decent_exposure", "devise", "draper", "enumerate_it", "factory_girl_rails", "ffaker", "font-awesome-rails", "kaminari", "letter_opener", "lograge", "money-rails", "nested_form", "pg", "poltergeist", "postmon_ruby", "pry-meta", "puma", "pundit", "rack-timeout", "rails", "rails-i18n", "rails_12factor", "responders", "rspec-rails", "rubocop", "sass-rails", "settingslogic", "shoulda-matchers", "simple_form", "simplecov", "slim", "sprockets-rails", "uglifier", "vcr"]
irb(main):003:0>
So, something's strange in that output as my feature tests use capybara
, rspec is configured to cleanse the db with database_cleaner
and ffaker
is used on all my factories created by factory_girl_rails
.
What's the output exactly?
The way it's designed to work is first it creates a set of all of your gem paths, then it uses TracePoint
to monitor every method call and determine which gem the call was made from by inspecting the execution path. If it finds a used gem, it removes that gem path from the working set. Finally, it reports all gems that have not been removed from the working set (e.g. not seen).
So the output should be the gems that have not been used. My guess would be that there might be a bug in the gem detection code.
Is it puts
'ing any used gems?
Here's an example with jbodah/spy_rb
Bodah@jbodah-local 2.1.3p242 ~/repos/spy_rb (master) $ irb
irb(main):001:0> require 'dead_gems'
=> true
irb(main):002:0> DeadGems.find('.', 'bundle exec rake')
/Users/Bodah/.rbenv/versions/2.1.3/bin/ruby -I"lib:test" -I"/Users/Bodah/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib" "/Users/Bodah/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/rake_test_loader.rb" "test/before_after_test.rb" "test/call_history_test.rb" "test/collection_test.rb" "test/legacy_spy_test.rb" "test/name_test.rb" "test/replay_test.rb" "test/smoke_test.rb" "test/spy_test.rb" "test/wrap_test.rb"
[Coveralls] Set up the SimpleCov formatter.
[Coveralls] Using SimpleCov's default settings.
Gem used: #<Class:Minitest::Runnable> called with inherited in /Users/Bodah/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/minitest-5.4.3/lib/minitest.rb
Gem used: #<Class:Minitest> called with plugin_guard_minitest_options in /Users/Bodah/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/guard-minitest-2.3.2/lib/minitest/guard_minitest_plugin.rb
Run options: --seed 6917
# Running:
...................................................................................................
Fabulous run in 0.048127s, 2057.0574 runs/s, 3843.9961 assertions/s.
99 runs, 185 assertions, 0 failures, 0 errors, 0 skips
Gem used: Guard::Notifier called with notify in /Users/Bodah/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/guard-2.6.1/lib/guard/notifier.rb
Gem used: Coveralls::SimpleCov::Formatter called with format in /Users/Bodah/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/coveralls-0.7.1/lib/coveralls/simplecov.rb
[Coveralls] Outside the Travis environment, not sending data.
=> ["minitest-bisect", "rake"]
irb(main):003:0>
Note all the "Gem used" statements
Maybe it's an rspec thing actually. I've only really tested with minitest
Yeah, nice. Since the gem is working fine now, I guess we can close this issue.
Thanks, @jbodah! :dancers: