Merge pull request #8448 from SuperTux88/gem-updates

Update dependencies and ruby version
This commit is contained in:
Benjamin Neff 2024-06-05 00:53:36 +02:00
commit cc50077188
No known key found for this signature in database
GPG key ID: 971464C3F1A90194
12 changed files with 423 additions and 401 deletions

View file

@ -15,8 +15,8 @@ jobs:
fail-fast: false
matrix:
ruby:
- '3.0'
- '3.1'
- '3.2'
- '3.3'
db:
- mysql
- postgresql

View file

@ -1 +1 @@
3.1
3.3

View file

@ -34,9 +34,9 @@ With this release, we switched from `unicorn` to `puma` to run our applications.
We use yarn to install the frontend dependencies now, so you need to have that installed. See here for how to install it: https://yarnpkg.com/en/docs/install
## Suggested Ruby version: 3.1
## Suggested Ruby version: 3.3
We recommend setting up new pods using Ruby 3.1, and updating existing pods to this version as well. Ruby 2.7 is EOL and no longer supported.
We recommend setting up new pods using Ruby 3.3, and updating existing pods to this version as well. Ruby 2.7 is EOL and no longer supported.
## Refactor
* Add bootstrapping for using ECMAScript 6 with automatic transpiling for compatibility [#7581](https://github.com/diaspora/diaspora/pull/7581) [#8397](https://github.com/diaspora/diaspora/pull/8397)
@ -53,7 +53,7 @@ We recommend setting up new pods using Ruby 3.1, and updating existing pods to t
* Drop `strip_exif` flag and always remove exif data from uploaded images [#8417](https://github.com/diaspora/diaspora/pull/8417)
* Replace `apparition` with `cuprite` [#8418](https://github.com/diaspora/diaspora/pull/8418)
* Remove `i18n-inflector-rails` for translations [#8420](https://github.com/diaspora/diaspora/pull/8420)
* Add ruby 3.0 and 3.1 support [#8423](https://github.com/diaspora/diaspora/pull/8423) [#8426](https://github.com/diaspora/diaspora/pull/8426) [#8427](https://github.com/diaspora/diaspora/pull/8427)
* Add ruby 3 support [#8423](https://github.com/diaspora/diaspora/pull/8423) [#8426](https://github.com/diaspora/diaspora/pull/8426) [#8427](https://github.com/diaspora/diaspora/pull/8427) [#8448](https://github.com/diaspora/diaspora/pull/8448)
* Add CORS headers to nodeinfo endpoints to allow for client-side fetching [#8436](https://github.com/diaspora/diaspora/pull/8436)
## Bug fixes

98
Gemfile
View file

@ -2,7 +2,7 @@
source "https://rubygems.org"
gem "rails", "6.1.7.4"
gem "rails", "6.1.7.8"
# needed for actionmailer, can be removed when upgrading to rails 7
gem "net-imap", require: false
@ -11,11 +11,11 @@ gem "net-smtp", require: false
# Legacy Rails features, remove me!
# responders (class level)
gem "responders", "3.1.0"
gem "responders", "3.1.1"
# Appserver
gem "puma", "6.3.0", require: false
gem "puma", "6.4.2", require: false
# Federation
@ -25,13 +25,13 @@ gem "diaspora_federation-rails", "1.1.0"
# API and JSON
gem "acts_as_api", "1.0.1"
gem "json", "2.6.3"
gem "json-schema", "4.0.0"
gem "json", "2.7.2"
gem "json-schema", "4.3.0"
gem "yajl-ruby", "1.4.3"
# Authentication
gem "devise", "4.9.2"
gem "devise", "4.9.4"
gem "devise_lastseenable", "0.0.6"
gem "devise-two-factor", "4.1.0"
gem "rqrcode", "2.2.0"
@ -43,28 +43,28 @@ gem "simple_captcha2", "0.5.0", require: "simple_captcha"
# Background processing
gem "redis", "4.8.1"
gem "sidekiq", "6.5.9"
gem "sidekiq", "6.5.12"
# Scheduled processing
gem "sidekiq-cron", "1.10.1"
gem "sidekiq-cron", "1.12.0"
# Compression
gem "terser", "1.1.16"
gem "terser", "1.2.2"
# Configuration
gem "configurate", "0.5.0"
gem "toml-rb", "2.2.0"
gem "configurate", "0.6.0"
gem "toml-rb", "3.0.1"
# Cross-origin resource sharing
gem "rack-cors", "2.0.1", require: "rack/cors"
gem "rack-cors", "2.0.2", require: "rack/cors"
# CSS
gem "autoprefixer-rails", "10.4.13.0"
gem "autoprefixer-rails", "10.4.16.0"
gem "bootstrap-sass", "3.4.1"
gem "bootstrap-switch-rails", "3.3.3" # 3.3.4 and 3.3.5 is broken, see https://github.com/Bttstrp/bootstrap-switch/issues/691
gem "sassc-rails", "2.1.2"
@ -73,18 +73,18 @@ gem "sprockets-rails", "3.4.2"
# Database
group :mysql, optional: true do
gem "mysql2", "0.5.5"
gem "mysql2", "0.5.6"
end
group :postgresql, optional: true do
gem "pg", "1.5.3"
gem "pg", "1.5.6"
end
gem "activerecord-import", "1.4.1"
gem "activerecord-import", "1.7.0"
# File uploading
gem "carrierwave", "2.2.4"
gem "fog-aws", "3.19.0"
gem "carrierwave", "3.0.7"
gem "fog-aws", "3.22.0"
gem "mini_magick", "4.12.0"
# GUID generation
@ -94,25 +94,25 @@ gem "uuid", "2.3.9"
gem "babel-transpiler", "0.7.0"
gem "handlebars_assets", "0.23.9"
gem "jquery-rails", "4.5.0"
gem "jquery-ui-rails", "5.0.5"
gem "jquery-rails", "4.6.0"
gem "jquery-ui-rails", "7.0.0"
gem "js_image_paths", "0.2.0"
gem "js-routes", "2.2.5"
gem "js-routes", "2.2.8"
# Localization
gem "http_accept_language", "2.1.1"
gem "rails-i18n", "7.0.7"
gem "rails-i18n", "7.0.9"
# Map
gem "leaflet-rails", "1.9.3"
gem "leaflet-rails", "1.9.4"
# Parsing
gem "nokogiri", "1.15.2"
gem "nokogiri", "1.16.5"
gem "open_graph_reader", "0.7.2" # also update User-Agent in features/support/webmock.rb and open_graph_cache_spec.rb
gem "redcarpet", "3.6.0"
gem "ruby-oembed", "0.16.1"
gem "ruby-oembed", "0.17.0"
gem "twitter-text", "3.1.0"
# RTL support
@ -125,32 +125,32 @@ gem "secure_headers", "6.5.0"
# Services
gem "omniauth", "2.1.1"
gem "omniauth-rails_csrf_protection", "1.0.1"
gem "omniauth", "2.1.2"
gem "omniauth-rails_csrf_protection", "1.0.2"
gem "omniauth-tumblr", "1.2"
gem "omniauth-twitter", "1.4.0"
gem "omniauth-wordpress", "0.2.2"
gem "twitter", "8.0.0"
# OpenID Connect
gem "openid_connect", "2.2.0"
gem "openid_connect", "2.3.0"
# Serializers
gem "active_model_serializers", "0.9.9"
gem "active_model_serializers", "0.9.12"
# Tags
gem "acts-as-taggable-on", "9.0.1"
gem "acts-as-taggable-on", "10.0.0"
# URIs and HTTP
gem "addressable", "2.8.4", require: "addressable/uri"
gem "faraday", "2.7.7"
gem "addressable", "2.8.6", require: "addressable/uri"
gem "faraday", "2.9.0"
gem "faraday-cookie_jar", "0.0.7"
gem "faraday-follow_redirects", "0.3.0"
gem "faraday-typhoeus", "1.0.0", require: false
gem "typhoeus", "1.4.0"
gem "faraday-typhoeus", "1.1.0", require: false
gem "typhoeus", "1.4.1"
# Views
@ -173,7 +173,7 @@ gem "rubyzip", "2.3.2", require: "zip"
# https://github.com/gitlabhq/gitlabhq/issues/3826
# https://github.com/gitlabhq/gitlabhq/pull/3852
# https://github.com/discourse/discourse/pull/238
gem "minitest", "5.18.1"
gem "minitest", "5.23.1"
gem "versionist", "2.0.1"
@ -194,19 +194,19 @@ group :production do # we don"t install these on travis to speed up test runs
# Third party asset hosting
gem "asset_sync", "2.18.0", require: false
gem "asset_sync", "2.19.1", require: false
end
group :development do
# Linters
gem "haml_lint", "0.46.0", require: false
gem "pronto", "0.11.1", require: false
gem "haml_lint", "0.58.0", require: false
gem "pronto", "0.11.2", require: false
gem "pronto-eslint", "0.11.1", require: false
gem "pronto-haml", "0.11.1", require: false
gem "pronto-rubocop", "0.11.5", require: false
gem "pronto-scss", "0.11.0", require: false
gem "rubocop", "1.53.1", require: false
gem "rubocop-rails", "2.20.2", require: false
gem "rubocop", "1.64.0", require: false
gem "rubocop-rails", "2.25.0", require: false
gem "faraday-retry", require: false # used by pronto/octokit
@ -219,7 +219,7 @@ group :development do
gem "turbo_dev_assets", "0.0.2"
gem "listen", "3.8.0"
gem "listen", "3.9.0"
end
group :test do
@ -231,28 +231,28 @@ group :test do
# Cucumber (integration tests)
gem "capybara", "3.39.2"
gem "cuprite", "0.14.3"
gem "capybara", "3.40.0"
gem "cuprite", "0.15"
gem "database_cleaner-active_record", "2.1.0"
gem "cucumber-api-steps", "0.14", require: false
# General helpers
gem "factory_bot_rails", "6.2.0"
gem "shoulda-matchers", "5.3.0"
gem "timecop", "0.9.6"
gem "webmock", "3.18.1", require: false
gem "factory_bot_rails", "6.4.3"
gem "shoulda-matchers", "6.2.0"
gem "timecop", "0.9.8"
gem "webmock", "3.23.1", require: false
gem "diaspora_federation-test", "1.1.0"
end
group :development, :test do
# RSpec (unit tests, some integration tests)
gem "rspec-rails", "6.0.3"
gem "rspec-rails", "6.1.2"
# Cucumber (integration tests)
gem "cucumber-rails", "2.6.1", require: false
gem "cucumber-rails", "3.0.0", require: false
# Jasmine (client side application tests (JS))
gem "chrome_remote", "0.3.0"

File diff suppressed because it is too large Load diff

View file

@ -12,8 +12,8 @@
//= require jquery.timeago
//= require jquery-ui/core
//= require jquery-ui/widget
//= require jquery-ui/mouse
//= require jquery-ui/sortable
//= require jquery-ui/widgets/mouse
//= require jquery-ui/widgets/sortable
//= require keycodes
//= require jquery.autoSuggest.custom
//= require fine-uploader/fine-uploader/fine-uploader

View file

@ -4,7 +4,7 @@ class SecureUploader < CarrierWave::Uploader::Base
protected
def extension
".#{original_filename.split('.').drop(1).join('.')}" if original_filename.present?
".#{file.filename.split('.').drop(1).join('.')}" if file.present? && file.respond_to?(:filename)
end
def secure_token(bytes=16)

View file

@ -6,3 +6,11 @@ require "bundler/setup" # Set up gems listed in the Gemfile.
# Load configuration early
require_relative "load_config"
# Ruby 3.2 removed the `exists?` alias from `File`, but at least the `logging-rails` gem still uses it.
# This is only a workaround, and we need a different long-term solution. It looks like the `logging-rails` gem
# is not maintained anymore, so we maybe need to find a replacement. But since this is the only thing preventing
# us from upgrading to Ruby >= 3.2, we can just create our own alias for now.
class << File
alias exists? exist?
end

View file

@ -1,4 +1,4 @@
FROM docker.io/amd64/ruby:3.1-slim-bullseye
FROM docker.io/amd64/ruby:3.3-slim-bullseye
RUN DEBIAN_FRONTEND=noninteractive \
apt-get update && \

View file

@ -4,15 +4,15 @@
"license": "AGPL-3.0",
"private": true,
"dependencies": {
"autosize": "4.0.2",
"backbone": "1.3.3",
"autosize": "6.0.1",
"backbone": "1.6.0",
"blueimp-gallery": "2.33.0",
"bootstrap-markdown": "2.10.0",
"corejs-typeahead": "1.2.1",
"cropperjs": "1.4.3",
"fine-uploader": "5.13.0",
"highlightjs": "9.12.0",
"jquery": "3.6.0",
"corejs-typeahead": "1.3.4",
"cropperjs": "1.6.2",
"fine-uploader": "5.16.2",
"highlightjs": "9.16.2",
"jquery": "3.7.0",
"jquery-placeholder": "2.3.1",
"jquery.are-you-sure": "1.9.0",
"markdown-it": "8.4.2",
@ -24,7 +24,7 @@
"markdown-it-sanitizer": "0.4.3",
"markdown-it-sub": "1.0.0",
"markdown-it-sup": "1.0.0",
"perfect-scrollbar": "1.4.0",
"perfect-scrollbar": "1.5.5",
"pica": "5.0.0"
},
"devDependencies": {

View file

@ -30,13 +30,15 @@ describe Person, type: :model do
describe ".local" do
it "returns only local people" do
Person.local =~ [@person]
expect(Person.local.map(&:id)).to include(@user.person.id)
expect(Person.local.map(&:id)).to_not include(@person.id)
end
end
describe ".remote" do
it "returns only local people" do
Person.remote =~ [@user.person]
it "returns only remote people" do
expect(Person.remote.map(&:id)).to include(@person.id)
expect(Person.remote.map(&:id)).to_not include(@user.person.id)
end
end

View file

@ -9,15 +9,15 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
autosize@4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/autosize/-/autosize-4.0.2.tgz#073cfd07c8bf45da4b9fd153437f5bafbba1e4c9"
integrity sha512-jnSyH2d+qdfPGpWlcuhGiHmqBJ6g3X+8T+iRwFrHPLVcdoGJE/x6Qicm6aDHfTsbgZKxyV8UU/YB2p4cjKDRRA==
autosize@6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/autosize/-/autosize-6.0.1.tgz#64ee78dd7029be959eddd3afbbd33235b957e10f"
integrity sha512-f86EjiUKE6Xvczc4ioP1JBlWG7FKrE13qe/DxBCpe8GCipCq2nFw73aO8QEBKHfSbYGDN5eB9jXWKen7tspDqQ==
backbone@1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/backbone/-/backbone-1.3.3.tgz#4cc80ea7cb1631ac474889ce40f2f8bc683b2999"
integrity sha512-aK+k3TiU4tQDUrRCymDDE7XDFnMVuyE6zbZ4JX7mb4pJbQTVOH997/kyBzb8wB2s5Y/Oh7EUfj+sZhwRPxWwow==
backbone@1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/backbone/-/backbone-1.6.0.tgz#5cdfa25257819b223109a77a74dde26d38995930"
integrity sha512-13PUjmsgw/49EowNcQvfG4gmczz1ximTMhUktj0Jfrjth0MVaTxehpU+qYYX4MxnuIuhmvBLC6/ayxuAGnOhbA==
dependencies:
underscore ">=1.8.3"
@ -36,37 +36,37 @@ core-js@^2.4.1:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
corejs-typeahead@1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/corejs-typeahead/-/corejs-typeahead-1.2.1.tgz#345a8afe664cc494075b59b64777807f0b3f132b"
integrity sha512-g22FqtnuB8CPq4K/dpPW2Th4fW50PCBBc4H1XWyrZQl22BM6JKDw2owfCLMHoCaQQapMkAPfNsUoR/TJeFEgrg==
corejs-typeahead@1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/corejs-typeahead/-/corejs-typeahead-1.3.4.tgz#dad8c5ab63579947b5d665eee3b538479847b0f8"
integrity sha512-4SAc1UWszc05IyG9te1JHSeLas5WUWKmKAB8m9E6AAmHCpYhdSaySkblVSIUwQG2FR5uAsaeHbKM+pkEP7SiNw==
dependencies:
jquery ">=1.11"
cropperjs@1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/cropperjs/-/cropperjs-1.4.3.tgz#dc44d6c9e73269e7f96894c726ab91e8913f9e90"
integrity sha512-fsUjHuS9mvKVh2aXVRgNcUDlFplW+v4eEB6sOHVI9kMV4G3GViSD4p1qvNLg1ko4ZhOnF0L8/9uXcY4s2bFQPg==
cropperjs@1.6.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/cropperjs/-/cropperjs-1.6.2.tgz#d1a5d627d880581cca41b7901f06923500e4201b"
integrity sha512-nhymn9GdnV3CqiEHJVai54TULFAE3VshJTXSqSJKa8yXAKyBKDWdhHarnlIPrshJ0WMFTGuFvG02YjLXfPiuOA==
entities@~1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
fine-uploader@5.13.0:
version "5.13.0"
resolved "https://registry.yarnpkg.com/fine-uploader/-/fine-uploader-5.13.0.tgz#091c1fafb2ee7219283f259fd9aae828c0e45574"
integrity sha512-qRNMJ/7vMwVchnByflf6xd4zqkTpoHmplMRu2ZXZQ+rTM/kGh8Zz2PM9HFAn1R8T7dBnVJg8pW+aoE9XQzlbsw==
fine-uploader@5.16.2:
version "5.16.2"
resolved "https://registry.yarnpkg.com/fine-uploader/-/fine-uploader-5.16.2.tgz#0d878da1cd2753f80683ac091df5daff9ffb8c44"
integrity sha512-y8giOn50k7rwMj/Y50Q/Sph8/DqZIao9YE7eOTrvwPfY7FpQwiNeqIOIsaP9CNPkXVNpUKGxZb0D1JvYSwrJZg==
glur@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/glur/-/glur-1.1.2.tgz#f20ea36db103bfc292343921f1f91e83c3467689"
integrity sha512-l+8esYHTKOx2G/Aao4lEQ0bnHWg4fWtJbVoZZT9Knxi01pB8C80BR85nONLFwkkQoFRCmXY+BUcGZN3yZ2QsRA==
highlightjs@9.12.0:
version "9.12.0"
resolved "https://registry.yarnpkg.com/highlightjs/-/highlightjs-9.12.0.tgz#9b84eb42a7aa8488eb69ac79fec44cf495bf72a1"
integrity sha512-eAhWMtDZaOZIQdxIP4UEB1vNp/CVXQPdMSihTSuaExhFIRC0BVpXbtP3mTP1hDoGOyh7nbB3cuC3sOPhG5wGDA==
highlightjs@9.16.2:
version "9.16.2"
resolved "https://registry.yarnpkg.com/highlightjs/-/highlightjs-9.16.2.tgz#07ea6cc7c93340fc440734fb7abf28558f1f0fe1"
integrity sha512-FK1vmMj8BbEipEy8DLIvp71t5UsC7n2D6En/UfM/91PCwmOpj6f2iu0Y0coRC62KSRHHC+dquM2xMULV/X7NFg==
inherits@^2.0.3:
version "2.0.4"
@ -90,10 +90,10 @@ jquery.are-you-sure@1.9.0:
dependencies:
jquery ">=1.4.2"
jquery@3.6.0, jquery@>=1.11, jquery@>=1.4.2:
version "3.6.0"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470"
integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==
jquery@3.7.0, jquery@>=1.11, jquery@>=1.4.2:
version "3.7.0"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.0.tgz#fe2c01a05da500709006d8790fe21c8a39d75612"
integrity sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==
linkify-it@^2.0.0:
version "2.2.0"
@ -188,10 +188,10 @@ object-assign@^4.1.1:
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
perfect-scrollbar@1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/perfect-scrollbar/-/perfect-scrollbar-1.4.0.tgz#5d014ef9775e1f43058a1dbae9ed1daf0e7091f1"
integrity sha512-/2Sk/khljhdrsamjJYS5NjrH+GKEHEwh7zFSiYyxROyYKagkE4kSn2zDQDRTOMo8mpT2jikxx6yI1dG7lNP/hw==
perfect-scrollbar@1.5.5:
version "1.5.5"
resolved "https://registry.yarnpkg.com/perfect-scrollbar/-/perfect-scrollbar-1.5.5.tgz#41a211a2fb52a7191eff301432134ea47052b27f"
integrity sha512-dzalfutyP3e/FOpdlhVryN4AJ5XDVauVWxybSkLZmakFE2sS3y3pc4JnSprw8tGmHvkaG5Edr5T7LBTZ+WWU2g==
pica@5.0.0:
version "5.0.0"
@ -214,9 +214,9 @@ uc.micro@^1.0.1, uc.micro@^1.0.5:
integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
underscore@>=1.8.3:
version "1.13.4"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.4.tgz#7886b46bbdf07f768e0052f1828e1dcab40c0dee"
integrity sha512-BQFnUDuAQ4Yf/cYY5LNrK9NCJFKriaRbD9uR1fTeXnBeoa97W0i41qkZfGO9pSo8I5KzjAcSY2XYtdf0oKd7KQ==
version "1.13.6"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441"
integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==
webworkify@^1.5.0:
version "1.5.0"