bensheldon / good_job

Multithreaded, Postgres-based, Active Job backend for Ruby on Rails.
https://goodjob-demo.herokuapp.com/
MIT License
2.66k stars 197 forks source link

Silence development warning output #1509

Open bensheldon opened 3 hours ago

bensheldon commented 3 hours ago

I think this output should all be silenced because it's not actionable afaik.

I'm not sure about the best way to do it, but I did something like this recently in Spectator Sport:

# gem 'warning' in gemfile too

# spec/spec_helper.rb
require "warning"
Warning.ignore([ :not_reached, :unused_var ], /.*lib\/mail\/parser.*/)
❯ bin/rspec
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: already initialized constant StringIO::VERSION
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old new
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old open
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old initialize
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old initialize_copy
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old reopen
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old string
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old string=
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old lineno
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old lineno=
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old binmode
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old close
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old close_read
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old close_write
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old closed?
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old closed_read?
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old closed_write?
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old eof
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old eof?
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old fcntl
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old flush
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old fsync
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old pos
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old pos=
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old rewind
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old seek
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old sync
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old sync=
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old tell
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old each
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old each_line
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old each_byte
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old each_char
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old each_codepoint
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old getc
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old ungetc
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old ungetbyte
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old getbyte
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old gets
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old readlines
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old read
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old pread
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old write
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old putc
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old isatty
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old tty?
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old pid
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old fileno
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old size
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old length
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old truncate
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old external_encoding
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old internal_encoding
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old set_encoding
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old set_encoding_by_bom
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old readchar
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old readbyte
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old readline
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old sysread
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old readpartial
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old read_nonblock
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old <<
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old print
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old printf
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old puts
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old syswrite
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/arm64-darwin23/stringio.bundle: warning: method redefined; discarding old write_nonblock
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/psych/exception.rb:11: warning: method redefined; discarding old initialize
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/gems/3.3.0/gems/psych-5.1.2/lib/psych/exception.rb:11: warning: previous definition of initialize was here
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/psych/exception.rb:18: warning: method redefined; discarding old initialize
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/gems/3.3.0/gems/psych-5.1.2/lib/psych/exception.rb:18: warning: previous definition of initialize was here
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/3.3.0/psych/exception.rb:24: warning: method redefined; discarding old initialize
/Users/bensheldon/.rbenv/versions/3.3.4/lib/ruby/gems/3.3.0/gems/psych-5.1.2/lib/psych/exception.rb:24: warning: previous definition of initialize was here
Earlopain commented 2 hours ago

Yes, the mail gems are annoying. Don't know what I did but didn't get them when adding $VERBOSE = true but I do see it myself now too. I added this in rubocop: https://github.com/rubocop/rubocop/blob/master/spec/support/strict_warnings.rb

It's heavily inspired from the module of the same name in rails. Can me stripped down for GoodJob needs. That warning gem works too I guess, though I haven't used it. Blanket ignoring :not_reached / :unused_var doesn't seem good since these could come from GoodJob itself (though highly unlikely with a linter). Generally I like to see these anyways from other gems to help them out if I encounter them.

stringio/psych warnings could be from homebrew/rbenv? https://github.com/Shopify/bootsnap/issues/112#issuecomment-483789081 It's an older comment so not sure if still relevant.