From fb8503e861b630728ead4be847309f1fd7c03dd4 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Tue, 14 Feb 2023 23:30:27 -0800 Subject: [PATCH] Upgrade to Ruby 3.2 (#22928) Co-authored-by: Matthew Ford --- .circleci/config.yml | 18 ++++++++++-------- .github/workflows/check-i18n.yml | 2 +- .ruby-version | 2 +- Dockerfile | 2 +- Gemfile | 6 +++--- Gemfile.lock | 32 ++++++++++++++++++++++---------- app/models/backup.rb | 2 +- 7 files changed, 39 insertions(+), 25 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index fabb6967e7..0b31238937 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 b2e6197868..aa2ec03940 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 eca690e737..e4604e3afd 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.0.5 +3.2.1 diff --git a/Dockerfile b/Dockerfile index 04e3b58b1e..c2b18ce886 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 961926c534..3a1f3a8c4d 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 26800af2c9..fbe09b290a 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 d242fd62c1..277b9395ba 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