rubyconfig / config

Easiest way to add multi-environment yaml settings to Rails, Sinatra, Padrino and other Ruby projects.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unable to run the tests when trying to contribute

neilwilliamsdvla opened this issue · comments

Hello,

I wanted to make a small change to allow Rails to configure the 'environment' used, instead of basing it on the RAILS_ENV (https://github.com/rubyconfig/config/blob/master/lib/config/integrations/rails/railtie.rb#L12).

It's a very small change, but on running the tests by following the contribution instructions, I'm getting lots of errors.

I'm using ruby 2.6.0, bundler 1.17.3.

Example error - this same error appears for each spec:

appraisal rspec
Bundler version 1.17.2
Bundler version 1.17.2
Bundler version 1.17.2
true
>> BUNDLE_GEMFILE=/Users/<user>/Sites/config/gemfiles/rails_4.2.gemfile bundle exec rspec
RUBY_ENGINE: ruby
RUBY_VERSION: 2.6.0


An error occurred while loading ./spec/config_env_spec.rb. - Did you mean?
                    rspec ./spec/config_spec.rb

Failure/Error: require 'bootsnap/setup' # Speed up boot time by caching expensive operations.

LoadError:
  cannot load such file -- bootsnap/setup
# ./spec/app/rails_6.0/config/boot.rb:4:in `require'
# ./spec/app/rails_6.0/config/boot.rb:4:in `<top (required)>'
# ./spec/app/rails_6.0/config/application.rb:1:in `require_relative'
# ./spec/app/rails_6.0/config/application.rb:1:in `<top (required)>'
# ./spec/app/rails_6.0/config/environment.rb:2:in `require_relative'
# ./spec/app/rails_6.0/config/environment.rb:2:in `<top (required)>'
# ./spec/spec_helper.rb:36:in `require'
# ./spec/spec_helper.rb:36:in `<top (required)>'
# ./spec/config_env_spec.rb:1:in `require'
# ./spec/config_env_spec.rb:1:in `<top (required)>'
RUBY_ENGINE: ruby
RUBY_VERSION: 2.6.0

Does anyone know what I need to do get these to run? The latest master build has passed, so I'm not sure why I'd be missing additional dependencies?

There's currently an issue when running:

bundle exec rspec

too. When you just want to run rspec against the latest rails.

it complains that sqlite isn't installed.

I've fixed this by changing the gemspec to use:

# Default RSpec run will test against latest Rails app
  unless ENV['APPRAISAL_INITIALIZED'] || ENV['GITHUB_ACTIONS']
    gems_to_install = /gem "(.*?)", "(.*?)"(, platform: \:(.*))?/
    File.read(Dir['gemfiles/rails*.gemfile'].sort.last).scan(gems_to_install) do |name, version, _, platform|
      if platform.nil?
        s.add_development_dependency name, version
      else
        if platform.to_s == RUBY_ENGINE
          s.add_development_dependency name, version
        end
      end
    end
  end

if you're happy with that, I'll include it in my PR I'm putting together.

Sure, why not! Can yu fire uo PR pls?

@pkuczynski I've put the PR in (#285), let me know what you think.

@neilwilliams Can you put that piece in a separate PR? It's unrelated to your feature PR and will likely get merged sooner than the rest of the feature PR.

I agree with @Fryguy. @neilwilliams could you separate this change in gemspec into a separate PR please?