diff --git a/Dockerfile b/Dockerfile index fd85029..5d47310 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,10 @@ # syntax=docker/dockerfile:1 -FROM ruby:2.7.8 -RUN apt-get update -qq && apt-get install -y nodejs +FROM ruby:4.0.0-slim +RUN apt-get update -qq && apt-get install -y \ + nodejs \ + build-essential \ + pkg-config \ + && rm -rf /var/lib/apt/lists/* # Create a non-root user and group RUN groupadd -r appuser && useradd -r -g appuser appuser WORKDIR /app diff --git a/Gemfile b/Gemfile index ce19368..5d6f93e 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } -ruby '3.1.4' +ruby '4.0.0' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '~> 7.1', '>= 7.1.5.1' @@ -20,7 +20,7 @@ gem 'coffee-rails', '~> 5.0' # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks gem 'turbolinks', '~> 5' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder -gem 'jbuilder', '~> 2.12' +gem 'jbuilder', '~> 2.14' # Use Redis adapter to run Action Cable in production # gem 'redis', '~> 4.0' # Use ActiveModel has_secure_password @@ -56,7 +56,7 @@ end group :test do # Adds support for Capybara system testing and selenium driver gem 'capybara', '>= 3.40' - gem 'selenium-webdriver', '>= 4.21.1' + gem 'selenium-webdriver', '>= 4.31.0' # Easy installation and use of chromedriver to run system tests with Chrome gem 'chromedriver-helper' end diff --git a/Gemfile.lock b/Gemfile.lock index 0b387ef..98519b2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,66 +1,68 @@ GEM remote: https://rubygems.org/ specs: - actioncable (7.2.2.1) - actionpack (= 7.2.2.1) - activesupport (= 7.2.2.1) + actioncable (7.2.3) + actionpack (= 7.2.3) + activesupport (= 7.2.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.2.2.1) - actionpack (= 7.2.2.1) - activejob (= 7.2.2.1) - activerecord (= 7.2.2.1) - activestorage (= 7.2.2.1) - activesupport (= 7.2.2.1) + actionmailbox (7.2.3) + actionpack (= 7.2.3) + activejob (= 7.2.3) + activerecord (= 7.2.3) + activestorage (= 7.2.3) + activesupport (= 7.2.3) mail (>= 2.8.0) - actionmailer (7.2.2.1) - actionpack (= 7.2.2.1) - actionview (= 7.2.2.1) - activejob (= 7.2.2.1) - activesupport (= 7.2.2.1) + actionmailer (7.2.3) + actionpack (= 7.2.3) + actionview (= 7.2.3) + activejob (= 7.2.3) + activesupport (= 7.2.3) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.2.2.1) - actionview (= 7.2.2.1) - activesupport (= 7.2.2.1) + actionpack (7.2.3) + actionview (= 7.2.3) + activesupport (= 7.2.3) + cgi nokogiri (>= 1.8.5) racc - rack (>= 2.2.4, < 3.2) + rack (>= 2.2.4, < 3.3) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (7.2.2.1) - actionpack (= 7.2.2.1) - activerecord (= 7.2.2.1) - activestorage (= 7.2.2.1) - activesupport (= 7.2.2.1) + actiontext (7.2.3) + actionpack (= 7.2.3) + activerecord (= 7.2.3) + activestorage (= 7.2.3) + activesupport (= 7.2.3) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.2.2.1) - activesupport (= 7.2.2.1) + actionview (7.2.3) + activesupport (= 7.2.3) builder (~> 3.1) + cgi erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.2.2.1) - activesupport (= 7.2.2.1) + activejob (7.2.3) + activesupport (= 7.2.3) globalid (>= 0.3.6) - activemodel (7.2.2.1) - activesupport (= 7.2.2.1) - activerecord (7.2.2.1) - activemodel (= 7.2.2.1) - activesupport (= 7.2.2.1) + activemodel (7.2.3) + activesupport (= 7.2.3) + activerecord (7.2.3) + activemodel (= 7.2.3) + activesupport (= 7.2.3) timeout (>= 0.4.0) - activestorage (7.2.2.1) - actionpack (= 7.2.2.1) - activejob (= 7.2.2.1) - activerecord (= 7.2.2.1) - activesupport (= 7.2.2.1) + activestorage (7.2.3) + actionpack (= 7.2.3) + activejob (= 7.2.3) + activerecord (= 7.2.3) + activesupport (= 7.2.3) marcel (~> 1.0) - activesupport (7.2.2.1) + activesupport (7.2.3) base64 benchmark (>= 0.3) bigdecimal @@ -76,9 +78,9 @@ GEM public_suffix (>= 2.0.2, < 7.0) archive-zip (0.12.0) io-like (~> 0.3.0) - base64 (0.2.0) - benchmark (0.4.0) - bigdecimal (3.1.9) + base64 (0.3.0) + benchmark (0.5.0) + bigdecimal (4.0.1) bindex (0.8.1) bootsnap (1.18.4) msgpack (~> 1.2) @@ -93,6 +95,7 @@ GEM rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) + cgi (0.5.1) chromedriver-helper (2.1.1) archive-zip (~> 0.10) nokogiri (~> 1.8) @@ -104,12 +107,14 @@ GEM coffee-script-source execjs coffee-script-source (1.12.2) - concurrent-ruby (1.3.5) - connection_pool (2.5.0) + concurrent-ruby (1.3.6) + connection_pool (2.5.5) crass (1.0.6) - date (3.4.1) - drb (2.2.1) + date (3.5.1) + drb (2.2.3) duktape (2.7.0.0) + erb (4.0.4) + cgi (>= 0.3.3) erubi (1.13.1) execjs (2.10.0) faraday (2.12.2) @@ -120,7 +125,7 @@ GEM net-http (>= 0.5.0) ffi (1.17.1) fiber-storage (1.0.0) - globalid (1.2.1) + globalid (1.3.0) activesupport (>= 6.1) graphlient (0.8.0) faraday (~> 2.0) @@ -132,37 +137,38 @@ GEM graphql-client (0.25.0) activesupport (>= 3.0) graphql (>= 1.13.0) - i18n (1.14.7) + i18n (1.14.8) concurrent-ruby (~> 1.0) - io-console (0.8.0) + io-console (0.8.2) io-like (0.3.1) - irb (1.15.1) + irb (1.16.0) pp (>= 0.6.0) rdoc (>= 4.0.0) reline (>= 0.4.2) - jbuilder (2.13.0) - actionview (>= 5.0.0) - activesupport (>= 5.0.0) + jbuilder (2.14.1) + actionview (>= 7.0.0) + activesupport (>= 7.0.0) json (2.10.2) logger (1.7.0) - loofah (2.24.0) + loofah (2.25.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) - mail (2.8.1) + mail (2.9.0) + logger mini_mime (>= 0.1.1) net-imap net-pop net-smtp - marcel (1.0.4) + marcel (1.1.0) matrix (0.4.2) method_source (1.1.0) mini_mime (1.1.5) - mini_portile2 (2.8.8) - minitest (5.25.5) + mini_portile2 (2.8.9) + minitest (5.27.0) msgpack (1.8.0) net-http (0.6.0) uri - net-imap (0.5.6) + net-imap (0.5.13) date net-protocol net-pop (0.1.2) @@ -171,13 +177,11 @@ GEM timeout net-smtp (0.5.1) net-protocol - nio4r (2.7.4) - nokogiri (1.18.6) + nio4r (2.7.5) + nokogiri (1.18.10) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.18.6-arm64-darwin) - racc (~> 1.4) - pp (0.6.2) + pp (0.6.3) prettyprint prettyprint (0.2.0) pry (0.14.2) @@ -188,57 +192,61 @@ GEM pry (>= 0.13, < 0.15) pry-rails (0.3.11) pry (>= 0.13.0) - psych (5.2.3) + psych (5.3.1) date stringio public_suffix (6.0.1) puma (6.4.3) nio4r (~> 2.0) racc (1.8.1) - rack (3.1.12) - rack-session (2.1.0) + rack (3.2.4) + rack-session (2.1.1) base64 (>= 0.1.0) rack (>= 3.0.0) rack-test (2.2.0) rack (>= 1.3) - rackup (2.2.1) + rackup (2.3.1) rack (>= 3) - rails (7.2.2.1) - actioncable (= 7.2.2.1) - actionmailbox (= 7.2.2.1) - actionmailer (= 7.2.2.1) - actionpack (= 7.2.2.1) - actiontext (= 7.2.2.1) - actionview (= 7.2.2.1) - activejob (= 7.2.2.1) - activemodel (= 7.2.2.1) - activerecord (= 7.2.2.1) - activestorage (= 7.2.2.1) - activesupport (= 7.2.2.1) + rails (7.2.3) + actioncable (= 7.2.3) + actionmailbox (= 7.2.3) + actionmailer (= 7.2.3) + actionpack (= 7.2.3) + actiontext (= 7.2.3) + actionview (= 7.2.3) + activejob (= 7.2.3) + activemodel (= 7.2.3) + activerecord (= 7.2.3) + activestorage (= 7.2.3) + activesupport (= 7.2.3) bundler (>= 1.15.0) - railties (= 7.2.2.1) - rails-dom-testing (2.2.0) + railties (= 7.2.3) + rails-dom-testing (2.3.0) activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) rails-html-sanitizer (1.6.2) loofah (~> 2.21) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) - railties (7.2.2.1) - actionpack (= 7.2.2.1) - activesupport (= 7.2.2.1) + railties (7.2.3) + actionpack (= 7.2.3) + activesupport (= 7.2.3) + cgi irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) thor (~> 1.0, >= 1.2.2) + tsort (>= 0.2) zeitwerk (~> 2.6) - rake (13.2.1) - rdoc (6.13.0) + rake (13.3.1) + rdoc (7.0.3) + erb psych (>= 4.0.0) + tsort regexp_parser (2.10.0) - reline (0.6.0) + reline (0.6.3) io-console (~> 0.5) - rexml (3.4.1) + rexml (3.4.4) rubyzip (2.4.1) sass-rails (6.0.0) sassc-rails (~> 2.1, >= 2.1.1) @@ -253,7 +261,7 @@ GEM sprockets-rails tilt securerandom (0.4.1) - selenium-webdriver (4.30.1) + selenium-webdriver (4.32.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) @@ -268,18 +276,16 @@ GEM sprockets (>= 3.0.0) sqlite3 (2.6.0) mini_portile2 (~> 2.8.0) - sqlite3 (2.6.0-arm64-darwin) - stringio (3.1.6) - thor (1.3.2) + stringio (3.2.0) + thor (1.4.0) tilt (2.6.0) - timeout (0.4.3) + timeout (0.6.0) + tsort (0.2.0) turbolinks (5.2.1) turbolinks-source (~> 5.2) turbolinks-source (5.2.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2025.2) - tzinfo (>= 1.0.0) uglifier (4.2.1) execjs (>= 0.3.0, < 3) uri (1.0.3) @@ -290,7 +296,7 @@ GEM bindex (>= 0.4.0) railties (>= 6.0.0) websocket (1.2.11) - websocket-driver (0.7.7) + websocket-driver (0.8.0) base64 websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) @@ -312,14 +318,14 @@ DEPENDENCIES duktape graphlient graphql-client - jbuilder (~> 2.12) + jbuilder (~> 2.14) pry pry-byebug pry-rails puma (~> 6.4.3) rails (~> 7.1, >= 7.1.5.1) sass-rails (~> 6.0) - selenium-webdriver (>= 4.21.1) + selenium-webdriver (>= 4.31.0) sqlite3 turbolinks (~> 5) tzinfo-data @@ -327,7 +333,7 @@ DEPENDENCIES web-console (>= 4.2.0) RUBY VERSION - ruby 3.1.4p223 + ruby 4.0.0p0 BUNDLED WITH 2.3.13