Closed dvzrv closed 2 years ago
rake test
runs fine on my machine. Please include the output from that command here, as well as the exact commit you're on.
rake test
runs fine on my machine. Please include the output from that command here, as well as the exact commit you're on.
That is likely because pry is available in your environment. When it is not, rake fails:
/usr/bin/ruby -w -I"lib:lib:test" /usr/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb "test/api/all_features_test.rb" "test/api/cascade_test.rb" "test/api/chain_test.rb" "test/api/fallbacks_test.rb" "test/api/key_value_test.rb" "test/api/memoize_test.rb" "test/api/override_test.rb" "test/api/pluralization_test.rb" "test/api/simple_test.rb" "test/backend/cache_file_test.rb" "test/backend/cache_test.rb" "test/backend/cascade_test.rb" "test/backend/chain_test.rb" "test/backend/exceptions_test.rb" "test/backend/fallbacks_test.rb" "test/backend/interpolation_compiler_test.rb" "test/backend/key_value_test.rb" "test/backend/memoize_test.rb" "test/backend/metadata_test.rb" "test/backend/pluralization_fallback_test.rb" "test/backend/pluralization_scope_test.rb" "test/backend/pluralization_test.rb" "test/backend/simple_test.rb" "test/backend/transliterator_test.rb" "test/gettext/api_test.rb" "test/gettext/backend_test.rb" "test/i18n/exceptions_test.rb" "test/i18n/gettext_plural_keys_test.rb" "test/i18n/interpolate_test.rb" "test/i18n/load_path_test.rb" "test/i18n/middleware_test.rb" "test/i18n_test.rb" "test/locale/fallbacks_test.rb" "test/locale/tag/rfc4646_test.rb" "test/locale/tag/simple_test.rb" "test/utils_test.rb"
/usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/resolver.rb:278:in `block in verify_gemfile_dependencies_are_found!': Could not find gem 'pry' in locally installed gems. (Bundler::GemNotFound)
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/resolver.rb:253:in `each'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/resolver.rb:253:in `verify_gemfile_dependencies_are_found!'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/resolver.rb:50:in `start'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/resolver.rb:23:in `resolve'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/definition.rb:256:in `resolve'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/definition.rb:477:in `materialize'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/definition.rb:228:in `specs_for'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/runtime.rb:18:in `setup'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler.rb:149:in `setup'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/setup.rb:20:in `block in <top (required)>'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/ui/shell.rb:136:in `with_level'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/ui/shell.rb:88:in `silence'
from /usr/lib/ruby/gems/3.0.0/gems/bundler-2.2.26/lib/bundler/setup.rb:20:in `<top (required)>'
from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:160:in `require'
from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:160:in `rescue in require'
from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:149:in `require'
from /build/ruby-i18n/src/i18n-1.9.0/test/test_helper.rb:2:in `<top (required)>'
from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /build/ruby-i18n/src/i18n-1.9.0/test/api/all_features_test.rb:1:in `<top (required)>'
from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb:21:in `block in <main>'
from /usr/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb:6:in `select'
from /usr/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb:6:in `<main>'
<internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- bundler/setup (LoadError)
from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /build/ruby-i18n/src/i18n-1.9.0/test/test_helper.rb:2:in `<top (required)>'
from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /build/ruby-i18n/src/i18n-1.9.0/test/api/all_features_test.rb:1:in `<top (required)>'
from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb:21:in `block in <main>'
from /usr/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb:6:in `select'
from /usr/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb:6:in `<main>'
rake aborted!
Command failed with status (1): [ruby -w -I"lib:lib:test" /usr/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb "test/api/all_features_test.rb" "test/api/cascade_test.rb" "test/api/chain_test.rb" "test/api/fallbacks_test.rb" "test/api/key_value_test.rb" "test/api/memoize_test.rb" "test/api/override_test.rb" "test/api/pluralization_test.rb" "test/api/simple_test.rb" "test/backend/cache_file_test.rb" "test/backend/cache_test.rb" "test/backend/cascade_test.rb" "test/backend/chain_test.rb" "test/backend/exceptions_test.rb" "test/backend/fallbacks_test.rb" "test/backend/interpolation_compiler_test.rb" "test/backend/key_value_test.rb" "test/backend/memoize_test.rb" "test/backend/metadata_test.rb" "test/backend/pluralization_fallback_test.rb" "test/backend/pluralization_scope_test.rb" "test/backend/pluralization_test.rb" "test/backend/simple_test.rb" "test/backend/transliterator_test.rb" "test/gettext/api_test.rb" "test/gettext/backend_test.rb" "test/i18n/exceptions_test.rb" "test/i18n/gettext_plural_keys_test.rb" "test/i18n/interpolate_test.rb" "test/i18n/load_path_test.rb" "test/i18n/middleware_test.rb" "test/i18n_test.rb" "test/locale/fallbacks_test.rb" "test/locale/tag/rfc4646_test.rb" "test/locale/tag/simple_test.rb" "test/utils_test.rb" ]
Full build log: ruby-i18n-1.9.0-build.log
I am sorry if this ticket stems from lack of understanding of where things are actually supposed to be defined in a ruby project :smile:
Going forward I am also fine to just removing the Gemfile before running rake test
. This seems to be no problem in regards to the build and the test run, as long as required dependencies for the tests are met (which they are).
I guess a comment in the Gemfile would nonetheless be helpful for users, packagers and developers to understand which gems are required during testing or introspection, etc.
When looking at the specification for .gemspec files, it seems that the development dependencies (which include those required for testing), should actually be included in the .gemspec file via spec.add_development_dependency.
This would clarify this to any user and leave it up to you to define whatever you like in the Gemfile if I understand correctly (but probably the pure testing requirements should only be listed in the .gemspec).
Do you mind if I open a PR for doing that?
Just a sanity check: did you run bundle install
before running rake test
?
Secondly: does bundle exec rake test
execute fine?
Just a sanity check: did you run
bundle install
before runningrake test
?
No, as I'm relying on system-wide installed packages in the packaging context.
Secondly: does
bundle exec rake test
execute fine?
I can check tomorrow, but from the looks of it, it seems as if that would probably download gems from the internet (and in a packaging context we rely on system-wide installed packages).
What I tried to do
rake test
, notice that rake attempts to find ruby-pry and failsrake test
without issue :tada:What I expected to happen
Not require pry.
What actually happened
The rake test call fails because it tries to find pry.
Versions of i18n, rails, and anything else you think is necessary
i18n 1.9.0 (but many earlier versions are affected I guess).