lutaml / expressir

Ruby parser for the ISO EXPRESS language
3 stars 3 forks source link

bundle install is crashing on Ubuntu with Ruby 2.7 #141

Closed HassanAkbar closed 10 months ago

HassanAkbar commented 10 months ago

GitHub Actions are failing for ubuntu with ruby 2.7 because expressir 1.3.0 is unavailable for x86_64-linux.

Example workflow runs

maxirmx commented 10 months ago

@HassanAkbar I am afraid it will require some research. I have it installing expressir-1.3.0-x86_64-linux-gnu as expected so it may be an issue with different bundler version

maxirmx@MSS-WS-N:~/Projects/expressir$ rbenv rehash
maxirmx@MSS-WS-N:~/Projects/expressir$ rbenv global 2.7.8
maxirmx@MSS-WS-N:~/Projects/expressir$ ruby --version
ruby 2.7.8p225 (2023-03-30 revision 1f4d455848) [x86_64-linux]
maxirmx@MSS-WS-N:~/Projects/expressir$ gem install expressir
Fetching thor-1.3.0.gem
Fetching expressir-1.3.0-x86_64-linux-gnu.gem
Successfully installed thor-1.3.0
Successfully installed expressir-1.3.0-x86_64-linux
Parsing documentation for thor-1.3.0
Installing ri documentation for thor-1.3.0
Parsing documentation for expressir-1.3.0-x86_64-linux
Installing ri documentation for expressir-1.3.0-x86_64-linux
Done installing documentation for thor, expressir after 1 seconds
2 gems installed
maxirmx@MSS-WS-N:~/Projects/expressir$ bundler --version
Bundler version 2.1.4
maxirmx@MSS-WS-N:~/Projects/expressir$ 
maxirmx commented 10 months ago

The note above was Ubuntu 20 Clean Ubuntu 22 works as well. I am lost completely

maxirmx@MSS-WS-N:~/Projects/expressir$ bundler --version
Bundler version 2.4.10
maxirmx@MSS-WS-N:~/Projects/expressir$ gem info expressir

*** LOCAL GEMS ***

maxirmx@MSS-WS-N:~/Projects/expressir$ gem install expressir
Fetching expressir-1.3.0-x86_64-linux-gnu.gem
Successfully installed expressir-1.3.0-x86_64-linux-gnu
Parsing documentation for expressir-1.3.0-x86_64-linux-gnu
Installing ri documentation for expressir-1.3.0-x86_64-linux-gnu
Done installing documentation for expressir after 0 seconds
1 gem installed

A new release of RubyGems is available: 3.4.10 → 3.5.1!
Run `gem update --system 3.5.1` to update your installation.
ronaldtse commented 10 months ago

@maxirmx the issue seems to be the difference between the old x86_64-linux and the new x86_64-linux-gnu?

maxirmx commented 10 months ago

The issue is that bundler shall fetch expressir-1.3.0-x86_64-linux-gnu.gem but on GHA it attempts to fetch expressir-1.3.0-x86_64-linux.gem that does not exist

HassanAkbar commented 10 months ago

@maxirmx One thing that I noticed is that older versions were available for x86_64-linux distributions but version 1.3.0 is only available for x86_64-linux-gnu.

Screenshot 2023-12-21 at 3 27 49 PM Screenshot 2023-12-21 at 3 27 39 PM

and the error in the workflow states that

Retrying download gem from https://rubygems.org/ due to error (4/4): Gem::RemoteFetcher::FetchError bad response Forbidden 403 (https://rubygems.org/gems/expressir-1.3.0-x86_64-linux.gem)

So I think this is what's causing the workflow to fail.

HassanAkbar commented 10 months ago

The issue is that bundler shall fetch expressir-1.3.0-x86_64-linux-gnu.gem but on GHA it attempts to fetch expressir-1.3.0-x86_64-linux.gem that does not exist

@maxirmx Yes, just saw your comment after posting mine.

maxirmx commented 10 months ago

x86_64-linux has been changed to x86_64-linux-gnu intentionally Legacy x86_64-linux versions actually support gnu flavor only and it caused issues

Pls have a look at these two runs:

setup-ruby GHA action upgrades bundler by default but does not do required rubygems upgrade If I upgrade rubygems to the version that corresponds to bundler version everything works If I downgrade bundler to the version to corresponds to default rubygems version it also works

Not sure what would be the best approach to fix it. Options are: ~- use bundler 2.1.xx -- fix it in metanorma ci scripts and possibly indvidually for some gems~

@ronaldtse, what do you think ? I think we shall ask @CAMOBAP as well

opoudjis commented 10 months ago

Just pointing out folks that Ruby 3.3 is coming out in a few days, and that means that we would be withdrawing Ruby 2.7 soon anyway, we only support 4 versions back. @ronaldtse is it worth persisting with fixing this at all, or is this our hint to drop Ruby 2.7 support?

ronaldtse commented 10 months ago

Clearly the cause is due to incompatibility between Bundler and Rubygems versions, so the only option is:

  • upgrade rubygems to 3.4.22 -- fix it in metanorma ci scripts and possibly indvidually for some gems

@CAMOBAP could you please help with this?

@opoudjis yes we should withdraw 2.7 support soon but we shouldn't leave it in a state of arrears when we do formally drop Ruby 2.x complete (2.7 is the last 2.x).

CAMOBAP commented 10 months ago

@ronaldtse should be fixed in the scope https://github.com/metanorma/ci/issues/136 already

maxirmx commented 10 months ago

@HassanAkbar https://github.com/metanorma/stepmod-utils now works on Ruby 2.7 (after https://github.com/metanorma/ci/issues/136 fix)

https://github.com/glossarist/concept-model needs make.yml fix. There is a note in the file saying that it is auto-generated so I am not suggesting a fix

ronaldtse commented 10 months ago

I’ve tried the fix by fully rerunning tests on Metanorma-standoc , and verified it works. Thank you @CAMOBAP ! Feel free to close this when ready.

CAMOBAP commented 10 months ago

https://github.com/glossarist/concept-model - done also