chef / supermarket

Chef's community platform
https://supermarket.chef.io/
Apache License 2.0
214 stars 113 forks source link

Upgrade rails autoloader from version 5.1 to 6.0 #2378

Closed RajeshPaul38 closed 2 years ago

RajeshPaul38 commented 2 years ago

We need to upgrade the rails autoloader from version 5.1 to version 6.0 Rails 6 has introduced a new autoloader: zeitwerk which is the default autoloader in autoloader version 6

We need to control the version with the following attribute: config.load_defaults

RajeshPaul38 commented 2 years ago

Getting this error when doing reconfigure

---- Begin output of bundle exec rake db:migrate db:seed ----
STDOUT:
STDERR: Unsupported rails environment for compass
rake aborted!

You're using a cache store that doesn't support native cache versioning.
Your best option is to upgrade to a newer version of ActiveSupport::Cache::RedisStore
that supports cache versioning (ActiveSupport::Cache::RedisStore.supports_cache_versioning? #=> true).

Next best, switch to a different cache store that does support cache versioning:
https://guides.rubyonrails.org/caching_with_rails.html#cache-stores.

To keep using the current cache store, you can turn off cache versioning entirely:

    config.active_record.cache_versioning = false

/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4.1/lib/active_record/railtie.rb:106:in `block (3 levels) in <class:Railtie>'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:71:in `class_eval'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:71:in `block in execute_hook'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:61:in `with_execution_control'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:66:in `execute_hook'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:43:in `block in on_load'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:42:in `each'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:42:in `on_load'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4.1/lib/active_record/railtie.rb:103:in `block (2 levels) in <class:Railtie>'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:68:in `block in execute_hook'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:61:in `with_execution_control'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:66:in `execute_hook'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:52:in `block in run_load_hooks'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:51:in `each'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:51:in `run_load_hooks'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.1/lib/rails/application/finisher.rb:140:in `block in <module:Finisher>'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.1/lib/rails/initializable.rb:32:in `instance_exec'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.1/lib/rails/initializable.rb:32:in `run'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.1/lib/rails/initializable.rb:61:in `block in run_initializers'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.1/lib/rails/initializable.rb:60:in `run_initializers'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.1/lib/rails/application.rb:391:in `initialize!'
/opt/supermarket/embedded/service/supermarket/config/environment.rb:5:in `<top (required)>'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/zeitwerk-2.5.1/lib/zeitwerk/kernel.rb:35:in `require'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/zeitwerk-2.5.1/lib/zeitwerk/kernel.rb:35:in `require'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/dependencies.rb:332:in `block in require'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/dependencies.rb:299:in `load_dependency'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.1/lib/active_support/dependencies.rb:332:in `require'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.1/lib/rails/application.rb:367:in `require_environment!'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.1/lib/rails/application.rb:533:in `block in run_tasks_blocks'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/honeycomb-beeline-2.7.1/lib/honeycomb/integrations/rake.rb:14:in `execute'
/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/opt/supermarket/embedded/bin/bundle:23:in `load'
/opt/supermarket/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)
---- End output of bundle exec rake db:migrate db:seed ----
Ran bundle exec rake db:migrate db:seed returned 1

Workin on fix.

RajeshPaul38 commented 2 years ago

Useful links to refer: https://blog.engineyard.com/rails-5-2-redis-cache-store https://githubmemory.com/repo/redis-store/redis-activesupport/issues/117 https://stackoverflow.com/questions/69449892/try-to-upgrade-application-into-iris-6

RajeshPaul38 commented 2 years ago

This can be reproduced in local on in production env through this command: bundle exec rake db:migrate db:seed RAILS_ENV=production

This error has been fixed by upgrading to latest version of redis-rails gem using bundle update. bundle update

Output below:

etching gem metadata from https://rubygems.org/........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies.................
Using rake 13.0.6
Using concurrent-ruby 1.1.9
Using i18n 1.8.11
Using minitest 5.14.4
Using tzinfo 2.0.4
Using zeitwerk 2.5.1
Using activesupport 6.1.4.1
Using builder 3.2.4
Using erubi 1.10.0
Using mini_portile2 2.6.1
Using racc 1.6.0
Using nokogiri 1.12.5 (x86_64-darwin)
Using rails-dom-testing 2.0.3
Using crass 1.0.6
Using loofah 2.12.0
Using rails-html-sanitizer 1.4.2
Using actionview 6.1.4.1
Using rack 2.2.3
Using rack-test 1.1.0
Using actionpack 6.1.4.1
Using nio4r 2.5.8
Using websocket-extensions 0.1.5
Using websocket-driver 0.7.5
Using actioncable 6.1.4.1
Using globalid 0.5.2
Using activejob 6.1.4.1
Using activemodel 6.1.4.1
Using activerecord 6.1.4.1
Fetching marcel 1.0.2 (was 1.0.1)
Installing marcel 1.0.2 (was 1.0.1)
Using mini_mime 1.1.2
Using activestorage 6.1.4.1
Using mail 2.7.1
Using actionmailbox 6.1.4.1
Using actionmailer 6.1.4.1
Using actiontext 6.1.4.1
Using public_suffix 4.0.6
Using addressable 2.8.0
Using and_feathers 1.0.0.pre.2
Using and_feathers-gzipped_tarball 1.0.0.pre
Using ast 2.4.2
Using aws-eventstream 1.2.0
Fetching aws-partitions 1.533.0 (was 1.525.0)
Installing aws-partitions 1.533.0 (was 1.525.0)
Using aws-sigv4 1.4.0
Using jmespath 1.4.0
Fetching aws-sdk-core 3.122.1 (was 3.122.0)
Installing aws-sdk-core 3.122.1 (was 3.122.0)
Using aws-sdk-kms 1.51.0
Fetching aws-sdk-s3 1.106.0 (was 1.105.1)
Installing aws-sdk-s3 1.106.0 (was 1.105.1)
Fetching aws-sdk-secretsmanager 1.52.0 (was 1.51.0)
Installing aws-sdk-secretsmanager 1.52.0 (was 1.51.0)
Using thread_safe 0.3.6
Using descendants_tracker 0.0.4
Using ice_nine 0.11.2
Using axiom-types 0.1.1
Using brakeman 5.1.2
Using bundler 2.1.4
Using byebug 11.1.3
Using matrix 0.4.2
Using regexp_parser 2.1.1
Using xpath 3.2.0
Using capybara 3.36.0
Using launchy 2.5.0
Using capybara-screenshot 1.0.25
Using chef-utils 17.7.29
Using fuzzyurl 0.9.0
Using tomlrb 1.3.0
Using mixlib-config 3.0.9
Using mixlib-shellout 3.2.5
Using chef-config 17.7.29
Using chef-vault 4.1.4
Using libyajl2 2.1.0
Using ffi-yajl 2.4.0
Using hashie 4.1.0
Using mixlib-log 3.0.9
Using uuidtools 2.2.0
Using webrick 1.7.0
Using chef-zero 15.0.11
Using ffi 1.15.4
Using corefoundation 0.3.4
Using diff-lcs 1.3
Using erubis 2.7.0
Using ffi-libarchive 1.1.3
Using iniparse 1.5.0
Using chef-telemetry 1.1.1
Using faraday-em_http 1.0.0
Using faraday-em_synchrony 1.0.0
Using faraday-excon 1.1.0
Using faraday-net_http 1.0.1
Using faraday-net_http_persistent 1.2.0
Using multipart-post 2.1.1
Using ruby2_keywords 0.0.5
Using faraday 1.4.3
Using faraday_middleware 1.2.0
Using tty-color 0.6.0
Using pastel 0.8.0
Using strings-ansi 0.2.0
Using unicode-display_width 2.1.0
Using unicode_utils 1.4.0
Using strings 0.2.1
Using tty-cursor 0.7.1
Using tty-box 0.7.0
Using tty-screen 0.8.1
Using wisper 2.0.1
Using tty-reader 0.9.0
Using tty-prompt 0.23.1
Using license-acceptance 2.1.13
Using method_source 1.0.0
Using parallel 1.21.0
Using parslet 1.8.2
Using coderay 1.1.3
Using pry 0.13.1
Fetching rspec-support 3.10.3 (was 3.10.2)
Installing rspec-support 3.10.3 (was 3.10.2)
Using rspec-core 3.10.1
Using rspec-expectations 3.10.1
Using rspec-mocks 3.10.2
Using rspec 3.10.0
Using rspec-its 1.3.0
Using rubyzip 2.3.2
Using semverse 3.0.0
Using sslshake 1.3.1
Using thor 1.0.1
Using json 2.6.1
Using net-ssh 6.1.0
Using net-scp 3.0.0
Using train-core 3.8.1
Using tty-table 0.12.0
Fetching inspec-core 4.50.3 (was 4.49.0)
Installing inspec-core 4.50.3 (was 4.49.0)
Using mixlib-archive 1.1.7
Using mixlib-authentication 3.0.10
Using mixlib-cli 2.1.8
Using net-sftp 3.0.0
Using ipaddress 0.8.3
Using plist 3.6.0
Using wmi-lite 1.0.5
Using ohai 17.7.8
Using proxifier 1.0.3
Using syslog-logger 1.6.8
Using gssapi 1.3.1
Using gyoku 1.3.1
Using httpclient 2.8.3
Using little-plugger 1.1.4
Using multi_json 1.15.0
Using logging 2.3.0
Using nori 2.6.0
Using rubyntlm 0.6.3
Using winrm 2.3.6
Using winrm-fs 1.3.5
Using winrm-elevated 1.2.3
Using train-winrm 0.2.12
Using vault 0.16.0
Using chef 17.7.29
Using parser 3.0.2.0
Using rainbow 3.0.0
Using rexml 3.2.5
Using rubocop-ast 1.13.0
Using ruby-progressbar 1.11.0
Using rubocop 1.23.0
Using chefstyle 2.1.3
Using chunky_png 1.4.0
Using climate_control 0.2.0
Using cliver 0.3.2
Using coercible 1.0.0
Using sass 3.4.25
Using compass-core 1.0.3
Using compass-import-once 1.0.5
Using rb-fsevent 0.11.0
Using rb-inotify 0.10.1
Using compass 1.0.3
Using compass-rails 2.0.1
Using connection_pool 2.2.5
Using crack 0.4.5
Fetching css_parser 1.10.0 (was 1.9.0)
Installing css_parser 1.10.0 (was 1.9.0)
Using database_cleaner-core 2.0.1
Using database_cleaner-active_record 2.0.1
Using database_cleaner 2.0.1
Fetching debase-ruby_core_source 0.10.12
Installing debase-ruby_core_source 0.10.12
Using msgpack 1.4.2
Fetching ddtrace 0.54.0 (was 0.53.0)
Installing ddtrace 0.54.0 (was 0.53.0) with native extensions
Using docile 1.4.0
Using unf_ext 0.0.8
Using unf 0.1.4
Using domain_name 0.5.20190701
Using dotenv 2.7.6
Using railties 6.1.4.1
Using dotenv-rails 2.7.6
Using equalizer 0.0.11
Fetching et-orbi 1.2.6 (was 1.2.4)
Installing et-orbi 1.2.6 (was 1.2.4)
Using excon 0.88.0 (was 0.87.0)
Using execjs 2.8.1 (was 2.7.0)
Using factory_bot 6.2.0
Using factory_bot_rails 6.2.0
Using faker 2.19.0
Using ffi-compiler 1.0.1
Using rufus-lru 1.1.0
Using polyglot 0.3.5
Using treetop 1.6.11
Using foodcritic 16.3.0
Using sawyer 0.8.2
Using octokit 4.21.0
Using sprockets 4.0.2
Fetching sprockets-rails 3.4.0 (was 3.2.2)
Installing sprockets-rails 3.4.0 (was 3.2.2)
Using rails 6.1.4.1
Using ruby-filemagic 0.7.2
Using redis 4.5.1
Using sidekiq 6.3.1
Using fieri 0.0.1 from source at `engines/fieri`
Using foreman 0.87.2
Using formatador 0.3.0
Using raabro 1.4.0
Fetching fugit 1.5.2 (was 1.5.0)
Installing fugit 1.5.2 (was 1.5.0)
Using listen 3.7.0
Using lumberjack 1.2.8
Using nenv 0.3.0
Using shellany 0.0.1
Using notiffany 0.1.3
Using guard 2.18.0
Using guard-compat 1.2.1
Using guard-rspec 4.7.3
Using guard-rubocop 1.5.0
Using hashdiff 1.0.1
Using http-cookie 1.0.4
Using http-form_data 2.3.0
Using llhttp-ffi 0.4.0
Using http 5.0.4
Using libhoney 1.21.0
Using honeycomb-beeline 2.7.1
Using html_truncator 0.4.2
Using htmlentities 4.3.4
Fetching jbuilder 2.11.3 (was 2.11.2)
Installing jbuilder 2.11.3 (was 2.11.2)
Using jwt 2.3.0
Using kaminari-core 1.2.1
Using kaminari-actionview 1.2.1
Using kaminari-activerecord 1.2.1
Using kaminari 1.2.1
Using kgio 2.11.4
Using letter_opener 1.7.0
Using letter_opener_web 2.0.0
Using libv8 3.16.14.19
Using with_env 1.1.0
Using xml-simple 1.1.9
Using license_finder 6.14.2
Fetching mime-types-data 3.2021.1115 (was 3.2021.0704)
Installing mime-types-data 3.2021.1115 (was 3.2021.0704)
Fetching mime-types 3.4.1 (was 3.3.1)
Installing mime-types 3.4.1 (was 3.3.1)
Using mimemagic 0.3.10
Using multi_xml 0.6.0
Using newrelic_rpm 8.1.0
Using oauth2 1.4.7
Using rack-protection 2.1.0
Using omniauth 2.0.4
Using omniauth-oauth2 1.7.2
Using omniauth-chef-oauth2 1.1.0
Using omniauth-github 2.0.0
Using omniauth-rails_csrf_protection 1.0.0
Using terrapin 0.6.0
Using paperclip 6.1.0
Using pg 1.2.3
Using pg_search 2.3.5
Using poltergeist 1.18.1
Using premailer 1.15.0
Using premailer-rails 1.11.1
Using pry-byebug 3.9.0
Using pry-rails 0.3.9
Using puma 5.5.2
Using pundit 2.1.1
Using rails-controller-testing 1.0.5
Using raindrops 0.19.2
Using rb-readline 0.5.5
Using redcarpet 3.5.1
Using redis-store 1.9.0 (was 1.6.0)
Using redis-rack 2.1.3
Using redis-actionpack 5.2.0
Using redis-activesupport 5.2.1
Using redis-rails 5.0.2
Using ref 2.0.0
Using rinku 2.0.6
Fetching rollout 2.5.0 (was 2.4.3)
Installing rollout 2.5.0 (was 2.4.3)
Using rspec-rails 5.0.2
Using rubocop-rails 2.12.4
Using sass-globbing 1.1.5
Using sassc 2.4.0
Using tilt 2.0.10
Using sassc-rails 2.1.2
Using sass-rails 6.0.0
Using sentry-raven 3.1.2
Using shoulda-matchers 5.0.0
Using sidekiq-cron 1.2.0
Using simplecov-html 0.12.3
Using simplecov_json_formatter 0.1.3
Using simplecov 0.21.2
Using sitemap_generator 6.1.2
Using spring 3.0.0
Using spring-commands-rspec 1.0.4
Using statsd-ruby 1.5.0
Using therubyracer 0.12.3
Using uglifier 4.2.0
Using unicorn 6.0.0
Using unicorn-rails 2.2.1
Using utf8-cleaner 1.0.0
Using validate_url 1.0.13
Using vcr 6.0.0
Using virtus 1.0.2
Using webmock 3.14.0
Using yajl-ruby 1.4.1
Using yard 0.9.26
Bundle updated!

Redis-store upgraded from 1.6.0 to 1.9.0

RajeshPaul38 commented 2 years ago

Now we are getting this error:

ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
/usr/share/rvm/gems/ruby-2.7.4/gems/execjs-2.8.1/lib/execjs/runtimes.rb:58:in `autodetect'
/usr/share/rvm/gems/ruby-2.7.4/gems/execjs-2.8.1/lib/execjs.rb:5:in `<module:ExecJS>'
/usr/share/rvm/gems/ruby-2.7.4/gems/execjs-2.8.1/lib/execjs.rb:4:in `<top (required)>'
/usr/share/rvm/gems/ruby-2.7.4/gems/activesupport-6.1.4.1/lib/active_support/dependencies.rb:332:in `require'
/usr/share/rvm/gems/ruby-2.7.4/gems/activesupport-6.1.4.1/lib/active_support/dependencies.rb:332:in `block in require'
/usr/share/rvm/gems/ruby-2.7.4/gems/activesupport-6.1.4.1/lib/active_support/dependencies.rb:299:in `load_dependency'
/usr/share/rvm/gems/ruby-2.7.4/gems/activesupport-6.1.4.1/lib/active_support/dependencies.rb:332:in `require'
/usr/share/rvm/gems/ruby-2.7.4/gems/uglifier-4.2.0/lib/uglifier.rb:5:in `<top (required)>'
/home/ubuntu/supermarket/src/supermarket/config/application.rb:26:in `<top (required)>'
/home/ubuntu/supermarket/src/supermarket/Rakefile:4:in `require'
/home/ubuntu/supermarket/src/supermarket/Rakefile:4:in `<top (required)>'
/usr/share/rvm/gems/ruby-2.7.4/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/share/rvm/gems/ruby-2.7.4/bin/ruby_executable_hooks:22:in `eval'
/usr/share/rvm/gems/ruby-2.7.4/bin/ruby_executable_hooks:22:in `<main>'
(See full trace by running task with --trace)

This was happening for upgrading execjs to 2.8.1 from 2.7.0. Hence downgraded it back to 2.7.0

RajeshPaul38 commented 2 years ago

Now omnibus build command is failing with the following error:

The following shell command exited with status 5:

    $ CFLAGS=-I/opt/supermarket/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector CPPFLAGS=-I/opt/supermarket/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector CXXFLAGS=-I/opt/supermarket/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector LDFLAGS=-Wl,-rpath,/opt/supermarket/embedded/lib -L/opt/supermarket/embedded/lib LD_RUN_PATH=/opt/supermarket/embedded/lib OMNIBUS_INSTALL_DIR=/opt/supermarket PATH=/opt/supermarket/bin:/opt/supermarket/embedded/bin:/usr/share/rvm/gems/ruby-2.7.4/bin:/usr/share/rvm/gems/ruby-2.7.4@global/bin:/usr/share/rvm/rubies/ruby-2.7.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/share/rvm/bin PKG_CONFIG_PATH=/opt/supermarket/embedded/lib/pkgconfig /opt/supermarket/embedded/bin/bundle install --jobs 17 --retry 3 --path=vendor/bundle --without development doc

Output:

    Fetching gem metadata from https://rubygems.org/.......
Using rake 13.0.6
Using concurrent-ruby 1.1.9
Using minitest 5.14.4
Using zeitwerk 2.5.1
Using builder 3.2.4
Using erubi 1.10.0
Using mini_portile2 2.6.1
Using racc 1.6.0
Using crass 1.0.6
Using rack 2.2.3
Using nio4r 2.5.8
Using websocket-extensions 0.1.5
Using marcel 1.0.2
Using mini_mime 1.1.2
Using public_suffix 4.0.6
Using and_feathers 1.0.0.pre.2
Using and_feathers-gzipped_tarball 1.0.0.pre
Using ast 2.4.2
Using aws-eventstream 1.2.0
Using aws-partitions 1.533.0
Using jmespath 1.4.0
Using thread_safe 0.3.6
Using ice_nine 0.11.2
Using bundler 2.1.4
Using byebug 11.1.3
Using matrix 0.4.2
Using regexp_parser 2.1.1
Using fuzzyurl 0.9.0
Using tomlrb 1.3.0
Using chef-vault 4.1.4
Using libyajl2 2.1.0
Using hashie 4.1.0
Using mixlib-log 3.0.9
Using uuidtools 2.2.0
Using webrick 1.7.0
Using ffi 1.15.4
Using diff-lcs 1.3
Using erubis 2.7.0
Using iniparse 1.5.0
Using faraday-em_http 1.0.0
Using faraday-em_synchrony 1.0.0
Using faraday-excon 1.1.0
Using faraday-net_http 1.0.1
Using faraday-net_http_persistent 1.2.0
Using multipart-post 2.1.1
Using ruby2_keywords 0.0.5
Using tty-color 0.6.0
Using strings-ansi 0.2.0
Using unicode-display_width 2.1.0
Using unicode_utils 1.4.0
Using tty-cursor 0.7.1
Using tty-screen 0.8.1
Using wisper 2.0.1
Using method_source 1.0.0
Using parallel 1.21.0
Using parslet 1.8.2
Using coderay 1.1.3
Using rspec-support 3.10.3
Using rubyzip 2.3.2
Using semverse 3.0.0
Using sslshake 1.3.1
Using thor 1.0.1
Using json 2.6.1
Using net-ssh 6.1.0
Using mixlib-authentication 3.0.10
Using mixlib-cli 2.1.8
Using ipaddress 0.8.3
Using plist 3.6.0
Using wmi-lite 1.0.5
Using proxifier 1.0.3
Using syslog-logger 1.6.8
Using httpclient 2.8.3
Using little-plugger 1.1.4
Using multi_json 1.15.0
Using nori 2.6.0
Using rubyntlm 0.6.3
Using rainbow 3.0.0
Using rexml 3.2.5
Using ruby-progressbar 1.11.0
Using chunky_png 1.4.0
Using climate_control 0.2.0
Using cliver 0.3.2
Using sass 3.4.25
Using rb-fsevent 0.11.0
Using connection_pool 2.2.5
Using database_cleaner-core 2.0.1
Using debase-ruby_core_source 0.10.12
Using msgpack 1.4.2
Using docile 1.4.0
Using unf_ext 0.0.8
Using dotenv 2.7.6
Using equalizer 0.0.11
Using excon 0.88.0
Using execjs 2.8.1
Using rufus-lru 1.1.0
Using polyglot 0.3.5
Using ruby-filemagic 0.7.2
Using redis 4.5.1
Using foreman 0.87.2
Using raabro 1.4.0
Using hashdiff 1.0.1
Using http-form_data 2.3.0
Using htmlentities 4.3.4
Using jwt 2.3.0
Using kaminari-core 1.2.1
Using kgio 2.11.4
Using libv8 3.16.14.19 (x86_64-linux)
Using mime-types-data 3.2021.1115
Using multi_xml 0.6.0
Using newrelic_rpm 8.1.0
Using pg 1.2.3
Using raindrops 0.19.2
Using rb-readline 0.5.5
Using redcarpet 3.5.1
Using ref 2.0.0
Using rinku 2.0.6
Using tilt 2.0.10
Using simplecov-html 0.12.3
Using simplecov_json_formatter 0.1.3
Using statsd-ruby 1.5.0
Using vcr 6.0.0
Using yajl-ruby 1.4.1
Using i18n 1.8.11
Using tzinfo 2.0.4
Using chef-utils 17.7.29
Using parser 3.0.2.0
Using aws-sigv4 1.4.0
Using descendants_tracker 0.0.4
Using addressable 2.8.0
Using mail 2.7.1
Using mixlib-config 3.0.9
Using corefoundation 0.3.4
Using ffi-libarchive 1.1.3
Using gssapi 1.3.1
Using rb-inotify 0.10.1
Using ffi-compiler 1.0.1
Using sassc 2.4.0
Using puma 5.5.2
Using pastel 0.8.0
Using strings 0.2.1
Using tty-reader 0.9.0
Using pry 0.13.1
Using rspec-core 3.10.1
Using rspec-expectations 3.10.1
Using rspec-mocks 3.10.2
Using net-scp 3.0.0
Using net-sftp 3.0.0
Using logging 2.3.0
Using crack 0.4.5
Using terrapin 0.6.0
Using compass-core 1.0.3
Using compass-import-once 1.0.5
Using sass-globbing 1.1.5
Using websocket-driver 0.7.5
Using unf 0.1.4
Using uglifier 4.2.0
Using treetop 1.6.11
Using redis-store 1.9.0
Using rollout 2.5.0
Using mime-types 3.4.1
Using unicorn 6.0.0
Using therubyracer 0.12.3
Using et-orbi 1.2.6
Using faker 2.19.0
Installing ddtrace 0.54.0 with native extensions
Using listen 3.7.0
Using pry-byebug 3.9.0
Using pry-rails 0.3.9
Using webmock 3.14.0
Using aws-sdk-core 3.122.1
Using axiom-types 0.1.1
Using launchy 2.5.0
Using mixlib-shellout 3.2.5
Using tty-box 0.7.0
Using tty-prompt 0.23.1
Using rspec 3.10.0
Using rspec-its 1.3.0
Using tty-table 0.12.0
Using vault 0.16.0
Using rubocop-ast 1.13.0
Using coercible 1.0.0
Using compass 1.0.3
Using css_parser 1.10.0
Using domain_name 0.5.20190701
Using llhttp-ffi 0.4.0
Using fugit 1.5.2
Using aws-sdk-kms 1.51.0
Using aws-sdk-secretsmanager 1.52.0
Using letter_opener 1.7.0
Using license-acceptance 2.1.13
Using mixlib-archive 1.1.7
Using rubocop 1.23.0
Using nokogiri 1.12.5 (x86_64-linux)
Using virtus 1.0.2
Using http-cookie 1.0.4
Using premailer 1.15.0
Using rack-test 1.1.0
Using chef-config 17.7.29
Using ffi-yajl 2.4.0
Using faraday 1.4.3
Using train-core 3.8.1
Using sprockets 4.0.2
Using sidekiq 6.3.1
Using rack-protection 2.1.0
Using redis-rack 2.1.3
Using unicorn-rails 2.2.1
Using chefstyle 2.1.3
Using xpath 3.2.0
Using html_truncator 0.4.2
Using mimemagic 0.3.10
Using http 5.0.4
Using compass-rails 2.0.1
Using chef-zero 15.0.11
Using foodcritic 16.3.0
Using aws-sdk-s3 1.106.0
Using faraday_middleware 1.2.0
Using sawyer 0.8.2
Using oauth2 1.4.7
Using sentry-raven 3.1.2
Using simplecov 0.21.2
Using omniauth 2.0.4
Using activesupport 6.1.4.1
Using capybara 3.36.0
Using libhoney 1.21.0
Using octokit 4.21.0
Using omniauth-oauth2 1.7.2
Using rails-dom-testing 2.0.3
Using globalid 0.5.2
Using activemodel 6.1.4.1
Using factory_bot 6.2.0
Using jbuilder 2.11.3
Using pundit 2.1.1
Using redis-activesupport 5.2.1
Using rubocop-rails 2.12.4
Using shoulda-matchers 5.0.0
Using utf8-cleaner 1.0.0
Using capybara-screenshot 1.0.25
Using poltergeist 1.18.1
Using honeycomb-beeline 2.7.1
Using activejob 6.1.4.1
Using activerecord 6.1.4.1
Using omniauth-chef-oauth2 1.1.0
Using omniauth-github 2.0.0
Using paperclip 6.1.0
Using validate_url 1.0.13
Using loofah 2.12.0
Using database_cleaner-active_record 2.0.1
Using kaminari-activerecord 1.2.1
Using pg_search 2.3.5
Using rails-html-sanitizer 1.4.2
Using database_cleaner 2.0.1
Using chef-telemetry 1.1.1
Using ohai 17.7.8
Using inspec-core 4.50.3
Using sitemap_generator 6.1.2
Using gyoku 1.3.1
Using actionview 6.1.4.1
Using winrm 2.3.6
Using winrm-fs 1.3.5
Using actionpack 6.1.4.1
Using winrm-elevated 1.2.3
Using kaminari-actionview 1.2.1
Using sidekiq-cron 1.2.0
Using actioncable 6.1.4.1
Using activestorage 6.1.4.1
Using actionmailer 6.1.4.1
Using railties 6.1.4.1
Using sprockets-rails 3.4.0
Using omniauth-rails_csrf_protection 1.0.0
Using rails-controller-testing 1.0.5
Using redis-actionpack 5.2.0
Using actionmailbox 6.1.4.1
Using actiontext 6.1.4.1
Using dotenv-rails 2.7.6
Using factory_bot_rails 6.2.0
Using kaminari 1.2.1
Using letter_opener_web 2.0.0
Using premailer-rails 1.11.1
Using redis-rails 5.0.2
Using rspec-rails 5.0.2
Using sassc-rails 2.1.2
Using train-winrm 0.2.12
Using chef 17.7.29
Using rails 6.1.4.1
Using fieri 0.0.1 from source at `engines/fieri`
Using sass-rails 6.0.0

Error:

    [DEPRECATED] The `--without` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set without 'development doc'`, and stop using this flag
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/var/cache/omnibus/src/supermarket/vendor/bundle/ruby/2.7.0/gems/ddtrace-0.54.0/ext/ddtrace_profiling_native_extension
/opt/supermarket/embedded/bin/ruby -I /opt/supermarket/embedded/lib/ruby/2.7.0
-r ./siteconf20211122-856969-ap2dqb.rb extconf.rb

+------------------------------------------------------------------------------+
| **Preparing to build the ddtrace native extension...**                       |
|                                                                              |
| If you run into any failures during this step, you can set the               |
| `DD_PROFILING_NO_EXTENSION` environment variable to `true` e.g.              |
| `$ DD_PROFILING_NO_EXTENSION=true bundle install` to skip this step.         |
|                                                                              |
| Disabling the extension will lead to the ddtrace profiling features not      |
| working in future releases.                                                  |
| If you needed to use this, please tell us why on                             |
| <https://github.com/DataDog/dd-trace-rb/issues/new> so we can fix it :)      |
|                                                                              |
| Thanks for using ddtrace! You rock!                                          |
+------------------------------------------------------------------------------+

creating extconf.h
creating Makefile

current directory:
/var/cache/omnibus/src/supermarket/vendor/bundle/ruby/2.7.0/gems/ddtrace-0.54.0/ext/ddtrace_profiling_native_extension
make "DESTDIR=" clean

current directory:
/var/cache/omnibus/src/supermarket/vendor/bundle/ruby/2.7.0/gems/ddtrace-0.54.0/ext/ddtrace_profiling_native_extension
make "DESTDIR="
compiling clock_id_from_pthread.c
compiling clock_id_noop.c
compiling private_vm_api_access.c
In file included from private_vm_api_access.c:1:
extconf.h:5:26: fatal error: rb_mjit_min_header-2.7.4.h: No such file or
directory
    5 | #define RUBY_MJIT_HEADER "rb_mjit_min_header-2.7.4.h"
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:245: private_vm_api_access.o] Error 1

make failed, exit code 2

Gem files will remain installed in
/var/cache/omnibus/src/supermarket/vendor/bundle/ruby/2.7.0/gems/ddtrace-0.54.0
for inspection.
Results logged to
/var/cache/omnibus/src/supermarket/vendor/bundle/ruby/2.7.0/extensions/x86_64-linux/2.7.0/ddtrace-0.54.0/gem_make.out

An error occurred while installing ddtrace (0.54.0), and Bundler cannot
continue.
Make sure that `gem install ddtrace -v '0.54.0' --source
'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  ddtrace

/usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/util.rb:139:in `rescue in shellout!'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/util.rb:134:in `shellout!'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/builder.rb:911:in `shellout!'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/builder.rb:390:in `block in bundle'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/builder.rb:1101:in `instance_eval'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/builder.rb:1101:in `run'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/builder.rb:929:in `block (3 levels) in execute'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/builder.rb:951:in `with_retries'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/builder.rb:928:in `block (2 levels) in execute'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/instrumentation.rb:23:in `measure'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/builder.rb:927:in `block in execute'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/builder.rb:1002:in `with_clean_env'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/builder.rb:926:in `execute'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/builder.rb:818:in `block (2 levels) in build'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/builder.rb:817:in `each'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/builder.rb:817:in `block in build'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/instrumentation.rb:23:in `measure'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/builder.rb:816:in `build'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/software.rb:1224:in `execute_build'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/software.rb:1107:in `build_me'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/project.rb:1078:in `block (2 levels) in build'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/project.rb:1077:in `each'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/project.rb:1077:in `block in build'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/licensing.rb:62:in `block in create_incrementally'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/licensing.rb:57:in `tap'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/licensing.rb:57:in `create_incrementally'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/project.rb:1076:in `build'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/cli.rb:89:in `build'
  /usr/share/rvm/gems/ruby-2.7.4/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
  /usr/share/rvm/gems/ruby-2.7.4/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
  /usr/share/rvm/gems/ruby-2.7.4/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/cli/base.rb:33:in `dispatch'
  /usr/share/rvm/gems/ruby-2.7.4/gems/thor-1.1.0/lib/thor/base.rb:485:in `start'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/lib/omnibus/cli.rb:42:in `execute!'
  /usr/share/rvm/gems/ruby-2.7.4/bundler/gems/omnibus-b1f410bf6b03/bin/omnibus:16:in `<top (required)>'
  bin/omnibus:29:in `load'
  bin/omnibus:29:in `<main>'
RajeshPaul38 commented 2 years ago

The --without flag needs to be replaced with it's latest counterpart i.e. by setting the bundle configuration as below:

bundle config set without 'development doc'

Also ddtrace version 0.54.0 has some issue hence downgrading it back to version 0.53.0.

Both these steps fixed the issue with the build.

RajeshPaul38 commented 2 years ago

Now after successful build and reconfigure when you run supermarket-ctl test it throws error as follows:

Profile: omnibus-supermarket-test
Version: 0.0.1
Target:  local://

  ✔  supermarket-ctl-perms: Check that the -ctl commands error correctly
     ✔  Command: `supermarket-ctl console` stderr is expected to include "supermarket-ctl console should be run as the supermarket OS user."
     ✔  Command: `supermarket-ctl make-admin` stderr is expected to include "supermarket-ctl make-admin should be run as the supermarket OS user."
     ✔  Command: `sudo -u supermarket supermarket-ctl make-admin user=nope` stdout is expected to include "nope was not found in Supermarket."
  ✔  ssl-config: Configurations for SSL
     ✔  File /var/opt/supermarket/ssl/ca/dhparams.pem is expected to be file
     ✔  File /var/opt/supermarket/ssl/ca/dhparams.pem content is expected to include "BEGIN DH PARAMETERS"
     ✔  File /var/opt/supermarket/nginx/etc/sites-enabled/rails content is expected to include "ssl_dhparam"
  ↺  FIPS: FIPS 140-2 enablement
     ↺  Skipped control due to only_if condition.
  ✔  log-management: Manage The Logs
     ✔  File /var/opt/supermarket/etc/logrotate.d is expected to be directory
     ✔  File /var/opt/supermarket/etc/logrotate.conf is expected to be file
     ✔  File /var/opt/supermarket/etc/logrotate.conf content is expected to include "include /var/opt/supermarket/etc/logrotate.d"
     ✔  File /etc/cron.hourly/supermarket_logrotate is expected to be file
     ✔  File /etc/cron.hourly/supermarket_logrotate content is expected to include "logrotate /var/opt/supermarket/etc/logrotate.conf"
     ✔  File /var/opt/supermarket/etc/logrotate.d/nginx is expected to be file
     ✔  File /var/opt/supermarket/etc/logrotate.d/nginx content is expected to include "/var/log/supermarket/nginx/*.log"
  ×  proxy: Reverse Proxy (2 failed)
     ✔  Port 80 is expected to be listening
     ✔  Port 80 protocols is expected to include "tcp"
     ✔  http GET to Port 80 should not include server version number in response headers
     ✔  Port 443 is expected to be listening
     ✔  Port 443 protocols is expected to include "tcp"
     ✔  HTTP GET on https://ip-172-19-138-144.us-west-2.compute.internal:443 should not include server version number in response headers
     ×  HTTP GET on https://ip-172-19-138-144.us-west-2.compute.internal:443 headers.keys is expected to include "strict-transport-security"
     expected ["date", "content-type", "content-length", "connection"] to include "strict-transport-security"
     ×  HTTP GET on https://ip-172-19-138-144.us-west-2.compute.internal:443 headers.Strict-Transport-Security is expected to include "max-age="
     expected nil to include "max-age=", but it does not respond to `include?`
  ✔  database: Database
     ✔  Port 15432 is expected to be listening
     ✔  Port 15432 protocols is expected to include "tcp"
  ✔  cache-dirs: Happy cache directories
     ✔  File /var/opt/supermarket/cache is expected to be directory
     ✔  File /opt/supermarket/embedded/cookbooks/local-mode-cache is expected not to exist
  ✔  redis: Redis
     ✔  Port 16379 is expected to be listening
     ✔  Port 16379 protocols is expected to include "tcp"
  ×  web-app: Web App (2 failed)
     ×  Port 13000 is expected to be listening
     expected `Port 13000.listening?` to be truthy, got false
     ×  Port 13000 protocols is expected to include "tcp"
     expected [] to include "tcp"

Profile Summary: 6 successful controls, 2 control failures, 1 control skipped
Test Summary: 25 successful, 4 failures, 1 skipped
🚨 Error: The command exited with status 1
RajeshPaul38 commented 2 years ago

To check the application log I checked the following command:

supermarket-ctl tail

It's throwing error as below:

error for sidekiq

==> /var/log/supermarket/sidekiq/current <==
2021-11-23_07:24:26.72696 2021-11-23T07:24:26.726Z pid=635994 tid=dci2 INFO: Booting Sidekiq 6.3.1 with redis options {:url=>"redis://127.0.0.1:16379/0/supermarket"}
2021-11-23_07:24:26.72903 2021-11-23T07:24:26.729Z pid=635994 tid=dci2 INFO: Cron Jobs - add job with name: Daily refresh of the sitemap
2021-11-23_07:24:26.73067 2021-11-23T07:24:26.730Z pid=635994 tid=dci2 INFO: Cron Jobs - add job with name: Schedule refresh of expiring tokens
2021-11-23_07:24:26.98585 W, [2021-11-23T07:24:26.985783 #635994]  WARN -- : Creating scope :open. Overwriting existing method QualityMetric.open.
2021-11-23_07:24:27.05003 W, [2021-11-23T07:24:27.049973 #635994]  WARN -- : Creating scope :open. Overwriting existing method MetricResult.open.
2021-11-23_07:24:27.45785 2021-11-23T07:24:27.457Z pid=635994 tid=dci2 WARN: Zeitwerk::NameError: expected file /opt/supermarket/embedded/service/supermarket/app/lib/supermarket/fips.rb to define constant Supermarket::Fips, but didn't
2021-11-23_07:24:27.45787 2021-11-23T07:24:27.457Z pid=635994 tid=dci2 WARN: /opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/zeitwerk-2.5.1/lib/zeitwerk/loader/callbacks.rb:25:in `on_file_autoloaded'

error for rails

==> /var/log/supermarket/rails/current <==
2021-11-23_07:24:35.40443 W, [2021-11-23T07:24:35.404360 #636011]  WARN -- : Creating scope :open. Overwriting existing method QualityMetric.open.
2021-11-23_07:24:35.43112 W, [2021-11-23T07:24:35.431066 #636011]  WARN -- : Creating scope :open. Overwriting existing method MetricResult.open.
2021-11-23_07:24:35.81423 bundler: failed to load command: unicorn (/opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/bin/unicorn)
2021-11-23_07:24:35.81433 Zeitwerk::NameError: expected file /opt/supermarket/embedded/service/supermarket/app/lib/supermarket/fips.rb to define constant Supermarket::Fips, but didn't
2021-11-23_07:24:35.81434   /opt/supermarket/embedded/service/supermarket/vendor/bundle/ruby/2.7.0/gems/zeitwerk-2.5.1/lib/zeitwerk/loader/callbacks.rb:25:in `on_file_autoloaded'

To fix both the errors there is a single file that needs to be checked:

error

Zeitwerk::NameError: expected file /opt/supermarket/embedded/service/supermarket/app/lib/supermarket/fips.rb to define constant Supermarket::Fips, but didn't

file to check

app/lib/supermarket/fips.rb

There is a command to check inconsistencies as per zeitwerk autoloader as below:

rails zeitwerk:check

output

Unsupported rails environment for compass
Hold on, I am eager loading the application.
expected file app/lib/supermarket/fips.rb to define constant Supermarket::Fips

Screenshot 2021-11-23 at 1.03.29 PM.png