2016-03-13 12 views
44

Kiedy zrobić bundle exec rake -T (lub bundle exec rake), dostaję ostrzeżenia Deprecation:Jak wykryć co powoduje ostrzeżenie amortyzację prowizji

Andrews-Air:nabu agrimm$ bundle exec rake --trace -T 
[DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. 
[DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. 
[DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. 
[DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. 
[DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. 
[DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. 
[DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. 
[DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. 
[DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. 
[DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. 
rake about        # List versions of all Rails frameworks and the environment 
[snip] 

Chociaż nie bardzo istotne, oto Gemfile:

source 'https://rubygems.org' 

gem 'rails', '~> 3.2.22.2' 

gem 'mysql2' 

group :assets do 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'compass-rails' 

    gem 'therubyracer' 
    gem 'libv8' 

    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 
gem 'haml-rails' 
gem 'to-csv', :require => 'to_csv' 
gem 'kaminari' 
gem 'oai' 
gem 'analytical' 

gem 'country-select' 
gem 'activeadmin' 
gem 'sass-rails', '~> 3.2.3' 
gem 'meta_search', '>= 1.1.0.pre' 

gem 'devise', '2.2.3' 
gem 'cancancan', '~> 1.12.0' 

gem 'squeel' 
gem 'nilify_blanks' 

gem 'sunspot_rails' 
gem 'sunspot_solr' 

gem 'unicorn' 

gem 'ruby-filemagic' 

gem 'capistrano' 
gem 'capistrano-ext' 
gem 'capistrano-unicorn' 

gem 'rollbar', '~> 2.8.3' 
gem 'newrelic_rpm' 

gem 'progress_bar' 
gem 'paper_trail', '~> 2' 
gem 'quiet_assets' 
gem 'roo', '~> 2.1.0' 
gem 'roo-xls', :github => 'roo-rb/roo-xls', :ref => '0a5ef88' 
gem 'streamio-ffmpeg' 
gem 'rake' 

gem 'rmagick' 

gem 'whenever', :require => false 

group :development, :test do 
    gem 'turn', '~> 0.8.3', :require => false 
    gem 'rspec-rails', '~> 2.0' 
    gem 'sextant' 
    gem 'thin' 

    gem 'spring' 
    gem 'spring-commands-rspec' 

    gem 'pry' 
    gem 'pry-rails' 

    gem 'letter_opener' 

    gem 'guard-bundler' 
    gem 'guard-rails' 
    gem 'guard-rspec' 
    gem 'guard-sunspot' 

    gem 'rb-inotify', :require => RUBY_PLATFORM.include?('linux') ? 'rb-inotify' : false 
    gem 'rb-fsevent', :require => RUBY_PLATFORM.include?('darwin') ? 'rb-fsevent' : false 
end 

group :development do 
    gem 'annotate' 
    gem 'binding_of_caller' 
    gem 'better_errors' 
    gem 'rubocop' 
end 

group :test do 
    gem 'capybara' 
    gem 'poltergeist' 
    gem 'factory_girl_rails' 
    gem 'database_cleaner' 
    gem 'email_spec' 
    gem 'launchy' 
end 

Wykonanie git grep -i last_comment wskazuje, że nie ma go w moim kodzie - prawdopodobnie jest to klejnot innej firmy.

Jak mogę ustalić, co powoduje ostrzeżenia o wycofaniu?

+0

W ramach obejścia, wymaganie "rake" wcześniejsze niż 11.0, usunęło informację o wycofaniu. –

Odpowiedz

25

I łatwiej modyfikując linię z warn do raise w rake-11.1.0/lib/rake/task_manager.rb:10.

Dla mnie obraźliwe klejnoty to rspec (fixed in 3.4.4) i rubocop (fixed in 0.38.0).

+0

Zmieniono ostrzeżenie, aby podnieść w task_manger.rb, ale nadal nie mogę używać rake (db: migrate). Zauważyłem również, że mam wiele wersji rake w moim katalogu gems, czy powinienem usunąć nowszy? –

+7

Aktualizacja rspec-core do wersji 3.4.4 i rspec-rails do wersji 3.4.2 rozwiązała problem. –

5

Można rekurencyjnie grep swoje skarby, z:

grep -r last_comment /path/to/gems 
+0

Wykonywanie 'grep -r last_comment' daje' grep: warning: rekursywne wyszukiwanie stdin' –

+0

Przepraszamy. Zaktualizowałem swoją odpowiedź./path/to/gems zależy od twojej instalacji. – Stefan

+0

Jeśli masz wiele projektów, to czy '/ path/to/gems' nie zawiera klejnotów dla wszystkich twoich projektów? –

28

Spróbuj zaktualizować gem "rspec-rails", "~> 3.4.4", która rozwiązała dla mnie ostrzeżenia o wycofaniu.

+2

rspec-core 3.4.2 nadal miałem to ostrzeżenie dla mnie. Aktualizacja do wersji 3.4.4 rozwiązała problem. Zobacz https://github.com/rspec/rspec-core/issues/2210. – jwadsack

+5

Gemfile: 'gem 'rspec-rails', '~> 3.4.2'', Konsola:' $ pakiet aktualizacji rspec rspec-rails' – blackchestnut

5

To nie jest rspec fault, błąd pochodzi z rake, ponieważ kilka tygodni temu dodano commit, które dodało ostrzeżenie, nastąpiła kolejna poprawka here.

Wygląda na to, że Rspec już stosuje się przy korzystaniu z last_description przez last_comment. Jeśli to możliwe, spróbuj zaktualizować do nowszej wersji rspec-core Gem, tak jak sugerował @ chris-scott. Pobiegłem do rade

bundle update rspec-core

2

Jak opisano w tym post można zrobić:

# application.rb 
ActiveSupport::Deprecation.debug = true 

To daje pełną ślad stosu o amortyzację.

Powiązane problemy