From 7934f3e916674352c269aac5efe7b9fba4781bf7 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Mon, 12 Jun 2023 02:19:02 +0200 Subject: [PATCH 1/5] Add mail protocol gems This is required for ruby 3.1 with rails 6.1, as they were removed from being bundled with ruby 3.1. It can be removed with rails 7 again, as they were added as a dependency to rails 7. --- Gemfile | 5 +++++ Gemfile.lock | 22 ++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/Gemfile b/Gemfile index 19e4592f4..1b580900a 100644 --- a/Gemfile +++ b/Gemfile @@ -4,6 +4,11 @@ source "https://rubygems.org" gem "rails", "6.1.6.1" +# needed for actionmailer, can be removed when upgrading to rails 7 +gem "net-imap", require: false +gem "net-pop", require: false +gem "net-smtp", require: false + # Legacy Rails features, remove me! # responders (class level) gem "responders", "3.0.1" diff --git a/Gemfile.lock b/Gemfile.lock index d0fa1c499..7840e1c34 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -224,6 +224,7 @@ GEM fabrication (~> 2.29) uuid (~> 2.3, >= 2.3.8) diff-lcs (1.5.0) + digest (3.0.0) docile (1.4.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) @@ -366,6 +367,7 @@ GEM image_processing (1.12.2) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) + io-wait (0.2.0) jasmine (3.10.0) jasmine-core (~> 3.10.0) phantomjs @@ -434,6 +436,21 @@ GEM multipart-post (2.2.3) mysql2 (0.5.4) naught (1.1.0) + net-imap (0.1.1) + digest + net-protocol + strscan + net-pop (0.1.1) + digest + net-protocol + timeout + net-protocol (0.1.1) + io-wait + timeout + net-smtp (0.2.1) + digest + net-protocol + timeout nio4r (2.5.8) nokogiri (1.13.7) mini_portile2 (~> 2.8.0) @@ -688,6 +705,7 @@ GEM ssrf_filter (1.1.1) state_machines (0.5.0) string-direction (1.2.2) + strscan (3.0.1) swd (1.3.0) activesupport (>= 3) attr_required (>= 0.0.5) @@ -705,6 +723,7 @@ GEM thread_safe (0.3.6) tilt (2.0.10) timecop (0.9.5) + timeout (0.1.1) timers (4.3.3) toml-rb (2.1.2) citrus (~> 3.0, > 3.0) @@ -822,6 +841,9 @@ DEPENDENCIES minitest (= 5.15.0) mobile-fu (= 1.4.0) mysql2 (= 0.5.4) + net-imap + net-pop + net-smtp nokogiri (= 1.13.7) omniauth (= 2.1.0) omniauth-rails_csrf_protection (= 1.0.1) From 72e1daa5e3305bfcf58351a03cabefe8f4e74894 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Mon, 12 Jun 2023 02:22:58 +0200 Subject: [PATCH 2/5] Bump capybara for ruby 3.1 The matrix gem was removed from ruby 3.1, but was required for capybara, but the current version added it as a dependency. --- Gemfile | 2 +- Gemfile.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Gemfile b/Gemfile index 1b580900a..93930b7e7 100644 --- a/Gemfile +++ b/Gemfile @@ -228,7 +228,7 @@ group :test do # Cucumber (integration tests) - gem "capybara", "3.35.3" + gem "capybara", "3.39.2" gem "cuprite", "0.14.3" gem "database_cleaner-active_record", "2.0.1" diff --git a/Gemfile.lock b/Gemfile.lock index 7840e1c34..806fb88a2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -98,8 +98,9 @@ GEM buftok (0.2.0) builder (3.2.4) byebug (11.1.3) - capybara (3.35.3) + capybara (3.39.2) addressable + matrix mini_mime (>= 0.1.3) nokogiri (~> 1.8) rack (>= 1.6.0) @@ -417,6 +418,7 @@ GEM mail (2.7.1) mini_mime (>= 0.1.1) marcel (1.0.2) + matrix (0.4.2) memoizable (0.4.2) thread_safe (~> 0.3, >= 0.3.1) method_source (1.0.0) @@ -425,7 +427,7 @@ GEM mime-types-data (3.2022.0105) mini_magick (4.11.0) mini_mime (1.1.2) - mini_portile2 (2.8.0) + mini_portile2 (2.8.2) minitest (5.15.0) mobile-fu (1.4.0) rack-mobile-detect @@ -448,9 +450,7 @@ GEM io-wait timeout net-smtp (0.2.1) - digest net-protocol - timeout nio4r (2.5.8) nokogiri (1.13.7) mini_portile2 (~> 2.8.0) @@ -536,8 +536,8 @@ GEM puma (5.6.5) nio4r (~> 2.0) raabro (1.4.0) - racc (1.6.0) - rack (2.2.4) + racc (1.7.0) + rack (2.2.7) rack-cors (1.1.1) rack (>= 2.0.0) rack-google-analytics (1.2.0) @@ -557,7 +557,7 @@ GEM rack-rewrite (1.5.1) rack-ssl (1.4.1) rack - rack-test (2.0.2) + rack-test (2.1.0) rack (>= 1.3) rails (6.1.6.1) actioncable (= 6.1.6.1) @@ -604,7 +604,7 @@ GEM ffi (~> 1.0) redcarpet (3.5.1) redis (4.7.0) - regexp_parser (2.5.0) + regexp_parser (2.8.1) request_store (1.5.1) rack (>= 1.4) responders (3.0.1) @@ -799,7 +799,7 @@ DEPENDENCIES babel-transpiler (= 0.7.0) bootstrap-sass (= 3.4.1) bootstrap-switch-rails (= 3.3.3) - capybara (= 3.35.3) + capybara (= 3.39.2) carrierwave (= 2.2.4) chrome_remote (= 0.3.0) configurate (= 0.5.0) From faf9390e70a60f09b19745876b3d8b2279eca252 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Mon, 12 Jun 2023 02:51:16 +0200 Subject: [PATCH 3/5] Add ruby 3.1, drop ruby 2.7 --- .github/workflows/ci.yml | 2 +- .ruby-version | 2 +- docker/develop/Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 475e2d957..f9bb078e7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,8 +15,8 @@ jobs: fail-fast: false matrix: ruby: - - '2.7' - '3.0' + - '3.1' db: - mysql - postgresql diff --git a/.ruby-version b/.ruby-version index 9f55b2ccb..8c50098d8 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.0 +3.1 diff --git a/docker/develop/Dockerfile b/docker/develop/Dockerfile index 6a0e93cda..ccf705ac9 100644 --- a/docker/develop/Dockerfile +++ b/docker/develop/Dockerfile @@ -1,4 +1,4 @@ -FROM docker.io/amd64/ruby:3.0-slim-bullseye +FROM docker.io/amd64/ruby:3.1-slim-bullseye RUN DEBIAN_FRONTEND=noninteractive \ apt-get update && \ From 9dfce77a4dcf106824d36082e54b33e39468bc5b Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Mon, 12 Jun 2023 02:51:41 +0200 Subject: [PATCH 4/5] Remove workaround required to load YAML with ruby 2.7 and 3.1 This works now with ruby >= 3.0 --- config/bundler_helper.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/config/bundler_helper.rb b/config/bundler_helper.rb index 0f1174e1c..964565a89 100644 --- a/config/bundler_helper.rb +++ b/config/bundler_helper.rb @@ -27,11 +27,7 @@ module BundlerHelper return {} unless File.file?(path) - if YAML.respond_to?(:unsafe_load_file) - YAML.unsafe_load_file(path) - else - YAML.load_file(path) - end + YAML.safe_load_file(path, aliases: true) end private_class_method def self.parse_value_from_toml_file(file, key) From 297fd722aba9cb030b2e4fae4979f0542d73c40f Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Mon, 12 Jun 2023 03:33:00 +0200 Subject: [PATCH 5/5] Bump jwt and json-jwt to support openssl 3.0 --- Gemfile.lock | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 806fb88a2..23e5176a1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -90,7 +90,7 @@ GEM babel-source (>= 4.0, < 6) execjs (~> 2.0) bcrypt (3.1.18) - bindata (2.4.10) + bindata (2.4.15) bootstrap-sass (3.4.1) autoprefixer-rails (>= 5.2.1) sassc (>= 2.0.0) @@ -389,15 +389,16 @@ GEM rails (>= 4.0, < 8.0) sprockets (>= 3.0.0) json (2.6.2) - json-jwt (1.13.0) + json-jwt (1.15.3) activesupport (>= 4.2) aes_key_wrap bindata + httpclient json-schema (3.0.0) addressable (>= 2.8) jsonpath (1.1.2) multi_json - jwt (2.4.1) + jwt (2.7.1) kostya-sigar (2.0.10) leaflet-rails (1.7.0) rails (>= 4.2.0)