about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAaron Patterson <tenderlove@ruby-lang.org>2023-02-14 23:30:27 -0800
committerGitHub <noreply@github.com>2023-02-15 08:30:27 +0100
commitfb8503e861b630728ead4be847309f1fd7c03dd4 (patch)
tree36cd2d74fd90b01be37d776978eff3e14ca32a4c
parentd15a9df6fefd515e8c655b1a03f08d2a95675d97 (diff)
Upgrade to Ruby 3.2 (#22928)
Co-authored-by: Matthew Ford <matt@bitzesty.com>
-rw-r--r--.circleci/config.yml18
-rw-r--r--.github/workflows/check-i18n.yml2
-rw-r--r--.ruby-version2
-rw-r--r--Dockerfile2
-rw-r--r--Gemfile6
-rw-r--r--Gemfile.lock32
-rw-r--r--app/models/backup.rb2
7 files changed, 39 insertions, 25 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index fabb6967e..0b3123893 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -46,7 +46,7 @@ commands:
           name: Set bundler settings
       - ruby/install-deps:
           bundler-version: '2.3.26'
-          key: ruby<< parameters.ruby-version >>-gems-v1
+          key: ruby<< parameters.ruby-version >>-gems-v2
   wait-db:
     steps:
       - run:
@@ -56,14 +56,14 @@ commands:
 jobs:
   build:
     docker:
-      - image: cimg/ruby:3.0-node
+      - image: cimg/ruby:3.2-node
         environment:
           RAILS_ENV: test
     steps:
       - checkout
       - install-system-dependencies
       - install-ruby-dependencies:
-          ruby-version: '3.0'
+          ruby-version: '3.2'
       - node/install-packages:
           cache-version: v1
           pkg-manager: yarn
@@ -95,7 +95,7 @@ jobs:
       - checkout
       - install-system-dependencies
       - run:
-          command: sudo apt-get install -y ffmpeg imagemagick libpam-dev
+          command: sudo apt-get install -y ffmpeg imagemagick libmagickcore-dev libmagickwand-dev libjpeg-dev libpng-dev libtiff-dev libwebp-dev libpam-dev
           name: Install additional system dependencies
       - run:
           command: bundle config with 'pam_authentication'
@@ -113,12 +113,12 @@ jobs:
   test-migrations:
     executor:
       name: default
-      ruby-version: '3.0'
+      ruby-version: '3.2'
     steps:
       - checkout
       - install-system-dependencies
       - install-ruby-dependencies:
-          ruby-version: '3.0'
+          ruby-version: '3.2'
       - wait-db
       - run:
           command: ./bin/rails db:create
@@ -151,12 +151,12 @@ jobs:
   test-two-step-migrations:
     executor:
       name: default
-      ruby-version: '3.0'
+      ruby-version: '3.2'
     steps:
       - checkout
       - install-system-dependencies
       - install-ruby-dependencies:
-          ruby-version: '3.0'
+          ruby-version: '3.2'
       - wait-db
       - run:
           command: ./bin/rails db:create
@@ -206,6 +206,8 @@ workflows:
               ruby-version:
                 - '2.7'
                 - '3.0'
+                - '3.1'
+                - '3.2'
           name: test-ruby<< matrix.ruby-version >>
           requires:
             - build
diff --git a/.github/workflows/check-i18n.yml b/.github/workflows/check-i18n.yml
index b2e619786..aa2ec0394 100644
--- a/.github/workflows/check-i18n.yml
+++ b/.github/workflows/check-i18n.yml
@@ -14,7 +14,7 @@ permissions:
 
 jobs:
   check-i18n:
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-22.04
 
     steps:
       - uses: actions/checkout@v3
diff --git a/.ruby-version b/.ruby-version
index eca690e73..e4604e3af 100644
--- a/.ruby-version
+++ b/.ruby-version
@@ -1 +1 @@
-3.0.5
+3.2.1
diff --git a/Dockerfile b/Dockerfile
index 04e3b58b1..c2b18ce88 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,7 +2,7 @@
 # This needs to be bullseye-slim because the Ruby image is built on bullseye-slim
 ARG NODE_VERSION="16.19-bullseye-slim"
 
-FROM ghcr.io/moritzheiber/ruby-jemalloc:3.0.5-slim as ruby
+FROM ghcr.io/moritzheiber/ruby-jemalloc:3.2.1-slim as ruby
 FROM node:${NODE_VERSION} as build
 
 COPY --link --from=ruby /opt/ruby /opt/ruby
diff --git a/Gemfile b/Gemfile
index 961926c53..3a1f3a8c4 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,7 +1,7 @@
 # frozen_string_literal: true
 
 source 'https://rubygems.org'
-ruby '>= 2.7.0', '< 3.1.0'
+ruby '>= 2.7.0', '< 3.3.0'
 
 gem 'pkg-config', '~> 1.5'
 gem 'rexml', '~> 3.2'
@@ -21,7 +21,7 @@ gem 'dotenv-rails', '~> 2.8'
 gem 'aws-sdk-s3', '~> 1.119', require: false
 gem 'fog-core', '<= 2.4.0'
 gem 'fog-openstack', '~> 0.3', require: false
-gem 'kt-paperclip', '~> 7.1'
+gem 'kt-paperclip', '~> 7.1', github: 'kreeti/kt-paperclip', ref: '11abf222dc31bff71160a1d138b445214f434b2b'
 gem 'blurhash', '~> 0.1'
 
 gem 'active_model_serializers', '~> 0.10'
@@ -72,7 +72,7 @@ gem 'premailer-rails'
 gem 'rack-attack', '~> 6.6'
 gem 'rack-cors', '~> 1.1', require: 'rack/cors'
 gem 'rails-i18n', '~> 6.0'
-gem 'rails-settings-cached', '~> 0.6'
+gem 'rails-settings-cached', '~> 0.6', git: 'https://github.com/mastodon/rails-settings-cached.git', branch: 'v0.6.6-aliases-true'
 gem 'redcarpet', '~> 3.6'
 gem 'redis', '~> 4.5', require: ['redis', 'redis/connection/hiredis']
 gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock'
diff --git a/Gemfile.lock b/Gemfile.lock
index 26800af2c..fbe09b290 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -7,6 +7,26 @@ GIT
       hkdf (~> 0.2)
       jwt (~> 2.0)
 
+GIT
+  remote: https://github.com/kreeti/kt-paperclip.git
+  revision: 11abf222dc31bff71160a1d138b445214f434b2b
+  ref: 11abf222dc31bff71160a1d138b445214f434b2b
+  specs:
+    kt-paperclip (7.1.1)
+      activemodel (>= 4.2.0)
+      activesupport (>= 4.2.0)
+      marcel (~> 1.0.1)
+      mime-types
+      terrapin (~> 0.6.0)
+
+GIT
+  remote: https://github.com/mastodon/rails-settings-cached.git
+  revision: 86328ef0bd04ce21cc0504ff5e334591e8c2ccab
+  branch: v0.6.6-aliases-true
+  specs:
+    rails-settings-cached (0.6.6)
+      rails (>= 4.2.0)
+
 GEM
   remote: https://rubygems.org/
   specs:
@@ -357,12 +377,6 @@ GEM
       activerecord
       kaminari-core (= 1.2.2)
     kaminari-core (1.2.2)
-    kt-paperclip (7.1.1)
-      activemodel (>= 4.2.0)
-      activesupport (>= 4.2.0)
-      marcel (~> 1.0.1)
-      mime-types
-      terrapin (~> 0.6.0)
     launchy (2.5.0)
       addressable (~> 2.7)
     letter_opener (1.8.1)
@@ -540,8 +554,6 @@ GEM
     rails-i18n (6.0.0)
       i18n (>= 0.7, < 2)
       railties (>= 6.0.0, < 7)
-    rails-settings-cached (0.6.6)
-      rails (>= 4.2.0)
     railties (6.1.7.2)
       actionpack (= 6.1.7.2)
       activesupport (= 6.1.7.2)
@@ -811,7 +823,7 @@ DEPENDENCIES
   json-ld-preloaded (~> 3.2)
   json-schema (~> 3.0)
   kaminari (~> 1.2)
-  kt-paperclip (~> 7.1)
+  kt-paperclip (~> 7.1)!
   letter_opener (~> 1.8)
   letter_opener_web (~> 2.0)
   link_header (~> 0.0)
@@ -850,7 +862,7 @@ DEPENDENCIES
   rails (~> 6.1.7)
   rails-controller-testing (~> 1.0)
   rails-i18n (~> 6.0)
-  rails-settings-cached (~> 0.6)
+  rails-settings-cached (~> 0.6)!
   rdf-normalize (~> 0.5)
   redcarpet (~> 3.6)
   redis (~> 4.5)
diff --git a/app/models/backup.rb b/app/models/backup.rb
index d242fd62c..277b9395b 100644
--- a/app/models/backup.rb
+++ b/app/models/backup.rb
@@ -18,5 +18,5 @@ class Backup < ApplicationRecord
   belongs_to :user, inverse_of: :backups
 
   has_attached_file :dump
-  do_not_validate_attachment_file_type :dump
+  validates_attachment_content_type :dump, content_type: /\Aapplication/
 end