Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

payola_spy gem reporting incorrect compatibility data #88

Open
etagwerker opened this issue Sep 27, 2024 · 1 comment
Open

payola_spy gem reporting incorrect compatibility data #88

etagwerker opened this issue Sep 27, 2024 · 1 comment

Comments

@etagwerker
Copy link
Member

Hi there,

This might have been me testing the new GitHub Actions setup. See #84

When I ran the GitHub Action for this gem (https://www.railsbump.org/gems/payola_spy) I saw this:

Run ./exe/check_bundler.sh --compat_id '1084067' --rails_version '7.1' --dependencies '{"bootstrap-sass":"~> 3.2.0.0","kaminari":"~> 0.16.2","payola-payments":"~> 1.2.4","rails":"~> 4.1.8","sass-rails":">= 3.2"}'
  ./exe/check_bundler.sh --compat_id '1084067' --rails_version '7.1' --dependencies '{"bootstrap-sass":"~> 3.2.0.0","kaminari":"~> 0.16.2","payola-payments":"~> 1.2.4","rails":"~> 4.1.8","sass-rails":">= 3.2"}'
  shell: /usr/bin/bash -e {0}
  env:
    RAILS_BUMP_API_KEY: ***
    RAILS_BUMP_API_HOST: https://api.railsbump.org/
Parsing JSON: {"bootstrap-sass":"~> 3.2.0.0","kaminari":"~> 0.16.2","payola-payments":"~> 1.2.4","rails":"~> 4.1.8","sass-rails":">= 3.2"}
Checking compatibility:
Rails version 7.1
Dependencies: {"bootstrap-sass"=>"~> 3.2.0.0", "kaminari"=>"~> 0.16.2", "payola-payments"=>"~> 1.2.4", "rails"=>"~> 4.1.8", "sass-rails"=>">= 3.2"}

Checking with temporary Gemfile: 

source 'https://rubygems.org/'
gem 'rails', '7.1'
gem 'bootstrap-sass', '~> 3.2.0.0'
gem 'kaminari', '~> 0.16.2'
gem 'payola-payments', '~> 1.2.4'
gem 'sass-rails', '>= 3.2'


✅ Compatible dependencies
Cleaning up temporary files...
Reporting...
Response:  (Status: 200)
Done reporting
Fetching gem metadata from https://rubygems.org/...........
Resolving dependencies...
Fetching concurrent-ruby 1.3.4
Fetching bigdecimal 3.1.8
Fetching connection_pool 2.4.1
Fetching drb 2.2.1
Installing connection_pool 2.4.1
Installing drb 2.2.1
Installing bigdecimal 3.1.8 with native extensions
Fetching minitest 5.25.1
Fetching builder 3.3.0
Installing minitest 5.25.1
Installing builder 3.3.0
Installing concurrent-ruby 1.3.4
Fetching erubi 1.13.0
Installing erubi 1.13.0
Fetching crass 1.0.6
Fetching rack 3.1.7
Installing crass 1.0.6
Fetching nio4r 2.7.3
Installing rack 3.1.7
Installing nio4r 2.7.3 with native extensions
Fetching websocket-extensions 0.1.5
Installing websocket-extensions 0.1.5
Fetching zeitwerk 2.6.18
Installing zeitwerk 2.6.18
Fetching marcel 1.0.4
Fetching mini_mime 1.1.5
Installing marcel 1.0.4
Installing mini_mime 1.1.5
Fetching rb-fsevent 0.11.2
Installing rb-fsevent 0.11.2
Fetching ffi 1.17.0 (x86_64-linux-gnu)
Fetching io-console 0.7.2
Installing io-console 0.7.2 with native extensions
Installing ffi 1.17.0 (x86_64-linux-gnu)
Fetching webrick 1.8.2
Installing webrick 1.8.2
Fetching thor 1.3.2
Installing thor 1.3.2
Fetching stripe 12.6.0
Installing stripe 12.6.0
Fetching tilt 2.4.0
Installing tilt 2.4.0
Fetching nokogiri 1.16.7 (x86_64-linux)
Installing nokogiri 1.16.7 (x86_64-linux)
Fetching rack-session 2.0.0
Installing rack-session 2.0.0
Fetching rack-test 2.1.0
Installing rack-test 2.1.0
Fetching websocket-driver 0.7.6
Installing websocket-driver 0.7.6 with native extensions
Fetching aasm 5.5.0
Installing aasm 5.5.0
Fetching i18n 1.14.6
Installing i18n 1.14.6
Fetching tzinfo 2.0.6
Installing tzinfo 2.0.6
Fetching sprockets 4.2.1
Installing sprockets 4.2.1
Fetching rb-inotify 0.11.1
Installing rb-inotify 0.11.1
Fetching sassc 2.4.0
Installing sassc 2.4.0 with native extensions
Fetching rackup 2.1.0
Installing rackup 2.1.0
Fetching loofah 2.22.0
Installing loofah 2.22.0
Fetching net-imap 0.4.16
Installing net-imap 0.4.16
Fetching net-pop 0.1.2
Installing net-pop 0.1.2
Fetching net-smtp 0.5.0
Installing net-smtp 0.5.0
Fetching sass-listen 4.0.0
Installing sass-listen 4.0.0
Fetching rdoc 6.7.0
Installing rdoc 6.7.0
Fetching reline 0.5.10
Installing reline 0.5.10
Fetching rails-html-sanitizer 1.6.0
Installing rails-html-sanitizer 1.6.0
Fetching mail 2.8.1
Installing mail 2.8.1
Fetching sass 3.7.4
Installing sass 3.7.4
Fetching irb 1.14.1
Installing irb 1.14.1
Fetching bootstrap-sass 3.2.0.4
Installing bootstrap-sass 3.2.0.4
Fetching activesupport 7.1.0
Installing activesupport 7.1.0
Fetching rails-dom-testing 2.2.0
Fetching globalid 1.2.1
Fetching activemodel 7.1.0
Installing rails-dom-testing 2.2.0
Installing globalid 1.2.1
Installing activemodel 7.1.0
Fetching stripe_event 2.10.0
Fetching activejob 7.1.0
Installing stripe_event 2.10.0
Installing activejob 7.1.0
Fetching actionview 7.1.0
Fetching activerecord 7.1.0
Installing actionview 7.1.0
Installing activerecord 7.1.0
Fetching actionpack 7.1.0
Installing actionpack 7.1.0
Fetching actioncable 7.1.0
Fetching actionmailer 7.1.0
Installing actioncable 7.1.0
Installing actionmailer 7.1.0
Fetching railties 7.1.0
Fetching kaminari 0.16.3
Installing kaminari 0.16.3
Installing railties 7.1.0
Fetching sprockets-rails 3.5.2
Installing sprockets-rails 3.5.2
Fetching activestorage 7.1.0
Installing activestorage 7.1.0
Fetching actionmailbox 7.1.0
Fetching actiontext 7.1.0
Installing actionmailbox 7.1.0
Installing actiontext 7.1.0
Fetching jquery-rails 4.6.0
Fetching rails 7.1.0
Installing rails 7.1.0
Installing jquery-rails 4.6.0
Fetching payola-payments 1.2.7
Installing payola-payments 1.2.7
Fetching sassc-rails 2.1.2
Installing sassc-rails 2.1.2
Fetching sass-rails 6.0.0
Installing sass-rails 6.0.0

Success: true

The logic to check compatibility removes the Rails dependency to avoid declaring one dependency twice in the Gemfile

Parsing JSON: {"bootstrap-sass":"> 3.2.0.0","kaminari":"> 0.16.2","payola-payments":"> 1.2.4","rails":"> 4.1.8","sass-rails":">= 3.2"}

So now it is showing that the gem is compatible with Rails 5.2 and higher, which I think is inaccurate.

Expected

I would expect the compatibility to show:

  • Compatible with Rails 4.1
  • Incompatible with any other version

I think we need to honor the declared dependencies before trying to check with the GitHub Action.

@manuelmeurer Is this something that is already considered in the order of the strategies that are attempted? Maybe I missed something

Thanks!

@manuelmeurer
Copy link
Collaborator

The logic to check compatibility removes the Rails dependency to avoid declaring one dependency twice in the Gemfile

Where is that happening?
In the current Compats::Check service, the Rails version that is being checked against is added to the Rails version constraint that the gem might have:
https:/railsbump/app/blob/main/app/services/compats/check.rb#L192

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants