2016-03-13 36 views
44

Quando faccio bundle exec rake -T (o bundle exec rake), ottengo warning di deprecazione:Come individuare ciò che provoca un avvertimento deprecazione in Rake

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] 

Anche se non è davvero rilevante, ecco la 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 

Fare un git grep -i last_comment indica che non è nel mio codice - presumibilmente si tratta di un gioiello di terze parti.

Come calcolare le cause degli avvisi di ritiro?

+0

Per ovviare al problema, richiedendo che 'rake' sia precedente alla 11.0 è stato rimosso l'avviso di rimozione. –

risposta

25

trovo più facile modificare la linea da warn a raise in rake-11.1.0/lib/rake/task_manager.rb:10.

Per me le gemme incriminate sono rspec (fixed in 3.4.4) e rubocop (fixed in 0.38.0).

+0

Ho modificato warn per aumentare in task_manger.rb, ma non riesco ancora a utilizzare rake (db: migrate). Ho anche notato che ho più versioni di rake nella mia directory gems, dovrei rimuovere più recenti? –

+7

Aggiornamento di rspec-core in 3.4.4 e rspec-rails in 3.4.2 risolto. –

5

Puoi ricorsivamente grep tue gemme, con:

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

Fare 'grep -r last_comment' dà' grep: warning: ricerca ricorsiva di stdin' –

+0

Siamo spiacenti. Ho aggiornato la mia risposta./path/to/gems dipende dalla tua installazione. – Stefan

+0

Se hai più progetti, quindi '/ path/to/gems' include le gemme per tutti i tuoi progetti? –

28

Provare ad aggiornare gem "rspec-rails", "~> 3.4.4", che ha risolto gli avvisi di ritiro per me.

+2

rspec-core 3.4.2 aveva ancora questo avviso per me. Aggiornamento a 3.4.4 risolto. Vedi https://github.com/rspec/rspec-core/issues/2210. – jwadsack

+5

Gemfile: 'gem 'rspec-rails', '~> 3.4.2'', Console:' $ bundle update rspec rspec-rails' – blackchestnut

5

Non è rspec fault, l'errore deriva dal rake era un commit un paio di settimane fa che ha aggiunto l'avviso, c'era un seguito here.

Sembra che Rspec soddisfi già l'utilizzo di last_description su last_comment. Se possibile, prova ad aggiornare ad una versione più recente di rspec-core Gem, come suggerito da @ chris-scott. Ho corso per fare il trucco

bundle update rspec-core

2

Come descritto in questo post, si può fare:

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

Questo vi darà piena analisi dello stack di disapprovazione.