# Copyright (C) The Arvados Authors. All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0

source 'https://rubygems.org'

# Rails 7.2.0 dropped Ruby 3.0.
gem 'rails', '~> 7.1.5'
gem 'responders'
gem 'i18n'
gem 'sprockets-rails'

group :test, :development do
  # factory_bot 6.4.6 dropped Ruby 2.7.  Ruby 3.0 compatibility might
  # also be dropped at a patchlevel release.
  # factory_bot 6.5.5 is the latest version we've tested.
  gem 'factory_bot', '6.5.5'
  # Similarly, factory_bot_rails 6.5.1 dropped Ruby 3.0.
  gem 'factory_bot_rails', '6.5.0'
  # ruby-prof 1.7.0 dropped Ruby 2.7.
  # ruby-prof 1.7 is the latest minor version we've tested.
  gem 'ruby-prof', '~> 1.7.0'
  # Note: "require: false" here tells bunder not to automatically
  # 'require' the packages during application startup. Installation is
  # still mandatory.
  gem 'test-unit', require: false
  gem 'simplecov', require: false
  gem 'simplecov-rcov', require: false
  gem 'mocha', require: false
  # byebug 12.0 dropped Ruby 3.0.
  gem 'byebug', '~> 11.1'
  gem 'listen'
end

# pg 1.6 prebuilt gems require newer glibc than RHEL 8 has.
gem 'pg', '~> 1.0', force_ruby_platform: true

gem 'oj'

gem 'jquery-rails'

gem 'acts_as_api'

gem 'passenger', '~> 6.0.26'

# minitest 5.26.2 dropped Ruby 3.0.
gem 'minitest', '5.26.1'

gem 'andand'

gem 'optimist'

gem 'arvados', '~> 3.2.0'
gem 'httpclient'

gem 'lograge'
gem 'logstash-event'

gem 'rails-observers'

gem 'rails-perftest'
gem 'rails-controller-testing'

gem 'webrick'

gem 'mini_portile2', '~> 2.8', '>= 2.8.1'

# Enforce Ruby 3.0 compatibility for indirect dependencies.

# nokogiri 1.18 dropped Ruby 3.0.
# https://nokogiri.org/CHANGELOG.html#v1180-2024-12-25
gem 'nokogiri', '~> 1.17.0'
# net-imap 0.5.0 dropped Ruby 3.0.
# https://github.com/ruby/net-imap/releases/tag/v0.5.0
gem 'net-imap', '~> 0.4.24'
# securerandom 0.4.0 dropped Ruby 2.7 and Ruby 3.0.
gem 'securerandom', '~> 0.3.2'
# multi_json 2.0 will drop Ruby 3.0.
# https://github.com/sferik/multi_json/pull/16#issue-3237521157
gem 'multi_json', '~> 1.0'
# hash_validator 2.0 dropped Ruby 2.7.
gem 'hash_validator', '~> 2.0'

# Install any plugin gems
Dir.glob(File.join(File.dirname(__FILE__), 'lib', '**', "Gemfile")) do |f|
    eval(IO.read(f), binding)
end
