Unverified Commit 98f2a766 authored by Aaron Andersen's avatar Aaron Andersen Committed by GitHub
Browse files

Merge pull request #298740 from felixsinger/pkgs/redmine/rework

redmine: Rework module and update package
parents d41453cf 187a5f88
Loading
Loading
Loading
Loading
+25 −15
Original line number Diff line number Diff line
@@ -10,16 +10,22 @@ let
  format = pkgs.formats.yaml {};
  bundle = "${cfg.package}/share/redmine/bin/bundle";

  databaseYml = pkgs.writeText "database.yml" ''
    production:
      adapter: ${cfg.database.type}
      database: ${cfg.database.name}
      host: ${if (cfg.database.type == "postgresql" && cfg.database.socket != null) then cfg.database.socket else cfg.database.host}
      port: ${toString cfg.database.port}
      username: ${cfg.database.user}
      password: #dbpass#
      ${optionalString (cfg.database.type == "mysql2" && cfg.database.socket != null) "socket: ${cfg.database.socket}"}
  '';
  databaseSettings = {
    production = {
      adapter = cfg.database.type;
      database = if cfg.database.type == "sqlite3" then "${cfg.stateDir}/database.sqlite3" else cfg.database.name;
    } // optionalAttrs (cfg.database.type != "sqlite3") {
      host = if (cfg.database.type == "postgresql" && cfg.database.socket != null) then cfg.database.socket else cfg.database.host;
      port = cfg.database.port;
      username = cfg.database.user;
    } // optionalAttrs (cfg.database.type != "sqlite3" && cfg.database.passwordFile != null) {
      password = "#dbpass#";
    } // optionalAttrs (cfg.database.type == "mysql2" && cfg.database.socket != null) {
      socket = cfg.database.socket;
    };
  };

  databaseYml = format.generate "database.yml" databaseSettings;

  configurationYml = format.generate "configuration.yml" cfg.settings;
  additionalEnvironment = pkgs.writeText "additional_environment.rb" cfg.extraEnv;
@@ -145,7 +151,7 @@ in

      database = {
        type = mkOption {
          type = types.enum [ "mysql2" "postgresql" ];
          type = types.enum [ "mysql2" "postgresql" "sqlite3" ];
          example = "postgresql";
          default = "mysql2";
          description = lib.mdDoc "Database engine to use.";
@@ -261,7 +267,7 @@ in
  config = mkIf cfg.enable {

    assertions = [
      { assertion = cfg.database.passwordFile != null || cfg.database.socket != null;
      { assertion = cfg.database.type != "sqlite3" -> cfg.database.passwordFile != null || cfg.database.socket != null;
        message = "one of services.redmine.database.socket or services.redmine.database.passwordFile must be set";
      }
      { assertion = cfg.database.createLocally -> cfg.database.user == cfg.user;
@@ -270,7 +276,7 @@ in
      { assertion = pgsqlLocal -> cfg.database.user == cfg.database.name;
        message = "services.redmine.database.user and services.redmine.database.name must be the same when using a local postgresql database";
      }
      { assertion = cfg.database.createLocally -> cfg.database.socket != null;
      { assertion = cfg.database.createLocally -> cfg.database.type != "sqlite3" && cfg.database.socket != null;
        message = "services.redmine.database.socket must be set if services.redmine.database.createLocally is set to true";
      }
      { assertion = cfg.database.createLocally -> cfg.database.host == "localhost";
@@ -395,9 +401,13 @@ in


        # handle database.passwordFile & permissions
        DBPASS=${optionalString (cfg.database.passwordFile != null) "$(head -n1 ${cfg.database.passwordFile})"}
        cp -f ${databaseYml} "${cfg.stateDir}/config/database.yml"

        ${optionalString ((cfg.database.type != "sqlite3") && (cfg.database.passwordFile != null)) ''
          DBPASS="$(head -n1 ${cfg.database.passwordFile})"
          sed -e "s,#dbpass#,$DBPASS,g" -i "${cfg.stateDir}/config/database.yml"
        ''}

        chmod 440 "${cfg.stateDir}/config/database.yml"


+101 −0
Original line number Diff line number Diff line
source 'https://rubygems.org'

ruby '>= 2.5.0', '< 3.2.0'
gem 'bundler', '>= 1.12.0'
ruby '>= 2.7.0', '< 3.3.0'

gem 'rails', '6.1.7.6'
gem 'globalid', '~> 0.4.2' if Gem.ruby_version < Gem::Version.new('2.6.0')
gem 'rouge', '~> 3.28.0'
gem 'rails', '6.1.7.7'
gem 'rouge', '~> 4.2.0'
gem 'request_store', '~> 1.5.0'
gem 'mini_mime', '~> 1.1.0'
gem "actionpack-xml_parser"
gem 'roadie-rails', (Gem.ruby_version < Gem::Version.new('2.6.0') ? '~> 2.2.0' : '~> 3.0.0')
gem 'roadie-rails', '~> 3.1.0'
gem 'marcel'
gem "mail", "~> 2.7.1"
gem 'csv', '~> 3.2.0'
gem 'nokogiri', (if Gem.ruby_version < Gem::Version.new('2.6.0')
                   '~> 1.12.5'
                 elsif Gem.ruby_version < Gem::Version.new('2.7.0')
                   '~> 1.13.10'
                 else
                   '~> 1.15.2'
                 end)
gem "rexml", require: false if Gem.ruby_version >= Gem::Version.new('3.0')
gem 'i18n', '~> 1.10.0'
gem 'mail', '~> 2.8.1'
gem 'nokogiri', '~> 1.15.2'
gem 'i18n', '~> 1.14.1'
gem 'rbpdf', '~> 1.21.3'
gem 'addressable'
gem 'rubyzip', '~> 2.3.0'
gem 'net-smtp', '~> 0.3.0'
gem 'net-imap', '~> 0.2.2'
gem 'net-pop', '~> 0.1.1'
# Rails 6.1.6.1 does not work with Pysch 3.0.2, which is installed by default with Ruby 2.5. See https://github.com/rails/rails/issues/45590
gem 'psych', '>= 3.1.0' if Gem.ruby_version < Gem::Version.new('2.6.0')

#  Ruby Standard Gems
gem 'csv', '~> 3.2.6'
gem 'net-imap', '~> 0.3.4'
gem 'net-pop', '~> 0.1.2'
gem 'net-smtp', '~> 0.3.3'
gem 'rexml', require: false if Gem.ruby_version >= Gem::Version.new('3.0')

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
@@ -38,6 +30,10 @@ gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
gem 'rotp', '>= 5.0.0'
gem 'rqrcode'

# HTML pipeline and sanitization
gem "html-pipeline", "~> 2.13.2"
gem "sanitize", "~> 6.0"

# Optional gem for LDAP authentication
group :ldap do
  gem 'net-ldap', '~> 0.17.0'
@@ -45,29 +41,27 @@ end

# Optional gem for exporting the gantt to a PNG file
group :minimagick do
  gem 'mini_magick', '~> 4.11.0'
  gem 'mini_magick', '~> 4.12.0'
end

# Optional Markdown support, not for JRuby
# ToDo: Remove common_mark group when common_mark is decoupled from markdown. See defect (#36892) for more details.
gem 'redcarpet', '~> 3.5.1', groups: [:markdown, :common_mark]
# Optional Markdown support
group :markdown do
  gem 'redcarpet', '~> 3.6.0'
end

# Optional CommonMark support, not for JRuby
group :common_mark do
  gem "html-pipeline", "~> 2.13.2"
  gem "commonmarker", (Gem.ruby_version < Gem::Version.new('2.6.0') ? '0.21.0' : '~> 0.23.8')
  gem "sanitize", "~> 6.0"
  gem "commonmarker", '~> 0.23.8'
  gem 'deckar01-task_list', '2.3.2'
end

# webrick
gem 'webrick'

# Include database gems for the database adapters NixOS supports
require 'erb'
require 'yaml'
gem "mysql2", "~> 0.5.0", :platforms => [:mri, :mingw, :x64_mingw]
gem "pg", "~> 1.4.2", :platforms => [:mri, :mingw, :x64_mingw]
gem "with_advisory_lock"
gem 'pg', '~> 1.5.3', :platforms => [:mri, :mingw, :x64_mingw]
gem 'sqlite3', '~> 1.6.0', :platforms => [:mri, :mingw, :x64_mingw]

group :development do
  gem 'listen', '~> 3.3'
@@ -77,25 +71,25 @@ end
group :test do
  gem "rails-dom-testing"
  gem 'mocha', '>= 2.0.1'
  gem 'simplecov', '~> 0.21.2', :require => false
  gem 'simplecov', '~> 0.22.0', :require => false
  gem "ffi", platforms: [:mri, :mingw, :x64_mingw, :mswin]
  # For running system tests
  gem 'puma', (Gem.ruby_version < Gem::Version.new('2.7') ? '< 6.0.0' : '>= 0')
  gem 'capybara', (if Gem.ruby_version < Gem::Version.new('2.6')
                     '~> 3.35.3'
                   elsif Gem.ruby_version < Gem::Version.new('2.7')
                     '~> 3.36.0'
  gem 'puma'
  gem "capybara", ">= 3.39"
  if Gem.ruby_version < Gem::Version.new('3.0')
    gem "selenium-webdriver", "<= 4.9.0"
    gem "webdrivers", require: false
  else
                     '~> 3.38.0'
                   end)
  gem "selenium-webdriver", "~> 3.142.7"
  gem 'webdrivers', '4.6.1', require: false
    gem "selenium-webdriver", ">= 4.11.0"
  end
  # RuboCop
  gem 'rubocop', '~> 1.26.0'
  gem 'rubocop-performance', '~> 1.13.0'
  gem 'rubocop-rails', '~> 2.14.0'
  gem 'rubocop', '~> 1.57.0', require: false
  gem 'rubocop-performance', '~> 1.19.0', require: false
  gem 'rubocop-rails', '~> 2.22.1', require: false
end

gem "webrick"

local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
if File.exist?(local_gemfile)
  eval_gemfile local_gemfile
+137 −127
Original line number Diff line number Diff line
GEM
  remote: https://rubygems.org/
  specs:
    actioncable (6.1.7.6)
      actionpack (= 6.1.7.6)
      activesupport (= 6.1.7.6)
    actioncable (6.1.7.7)
      actionpack (= 6.1.7.7)
      activesupport (= 6.1.7.7)
      nio4r (~> 2.0)
      websocket-driver (>= 0.6.1)
    actionmailbox (6.1.7.6)
      actionpack (= 6.1.7.6)
      activejob (= 6.1.7.6)
      activerecord (= 6.1.7.6)
      activestorage (= 6.1.7.6)
      activesupport (= 6.1.7.6)
    actionmailbox (6.1.7.7)
      actionpack (= 6.1.7.7)
      activejob (= 6.1.7.7)
      activerecord (= 6.1.7.7)
      activestorage (= 6.1.7.7)
      activesupport (= 6.1.7.7)
      mail (>= 2.7.1)
    actionmailer (6.1.7.6)
      actionpack (= 6.1.7.6)
      actionview (= 6.1.7.6)
      activejob (= 6.1.7.6)
      activesupport (= 6.1.7.6)
    actionmailer (6.1.7.7)
      actionpack (= 6.1.7.7)
      actionview (= 6.1.7.7)
      activejob (= 6.1.7.7)
      activesupport (= 6.1.7.7)
      mail (~> 2.5, >= 2.5.4)
      rails-dom-testing (~> 2.0)
    actionpack (6.1.7.6)
      actionview (= 6.1.7.6)
      activesupport (= 6.1.7.6)
    actionpack (6.1.7.7)
      actionview (= 6.1.7.7)
      activesupport (= 6.1.7.7)
      rack (~> 2.0, >= 2.0.9)
      rack-test (>= 0.6.3)
      rails-dom-testing (~> 2.0)
@@ -30,63 +30,63 @@ GEM
    actionpack-xml_parser (2.0.1)
      actionpack (>= 5.0)
      railties (>= 5.0)
    actiontext (6.1.7.6)
      actionpack (= 6.1.7.6)
      activerecord (= 6.1.7.6)
      activestorage (= 6.1.7.6)
      activesupport (= 6.1.7.6)
    actiontext (6.1.7.7)
      actionpack (= 6.1.7.7)
      activerecord (= 6.1.7.7)
      activestorage (= 6.1.7.7)
      activesupport (= 6.1.7.7)
      nokogiri (>= 1.8.5)
    actionview (6.1.7.6)
      activesupport (= 6.1.7.6)
    actionview (6.1.7.7)
      activesupport (= 6.1.7.7)
      builder (~> 3.1)
      erubi (~> 1.4)
      rails-dom-testing (~> 2.0)
      rails-html-sanitizer (~> 1.1, >= 1.2.0)
    activejob (6.1.7.6)
      activesupport (= 6.1.7.6)
    activejob (6.1.7.7)
      activesupport (= 6.1.7.7)
      globalid (>= 0.3.6)
    activemodel (6.1.7.6)
      activesupport (= 6.1.7.6)
    activerecord (6.1.7.6)
      activemodel (= 6.1.7.6)
      activesupport (= 6.1.7.6)
    activestorage (6.1.7.6)
      actionpack (= 6.1.7.6)
      activejob (= 6.1.7.6)
      activerecord (= 6.1.7.6)
      activesupport (= 6.1.7.6)
    activemodel (6.1.7.7)
      activesupport (= 6.1.7.7)
    activerecord (6.1.7.7)
      activemodel (= 6.1.7.7)
      activesupport (= 6.1.7.7)
    activestorage (6.1.7.7)
      actionpack (= 6.1.7.7)
      activejob (= 6.1.7.7)
      activerecord (= 6.1.7.7)
      activesupport (= 6.1.7.7)
      marcel (~> 1.0)
      mini_mime (>= 1.1.0)
    activesupport (6.1.7.6)
    activesupport (6.1.7.7)
      concurrent-ruby (~> 1.0, >= 1.0.2)
      i18n (>= 1.6, < 2)
      minitest (>= 5.1)
      tzinfo (~> 2.0)
      zeitwerk (~> 2.3)
    addressable (2.8.5)
    addressable (2.8.6)
      public_suffix (>= 2.0.2, < 6.0)
    ast (2.4.2)
    base64 (0.2.0)
    builder (3.2.4)
    capybara (3.38.0)
    capybara (3.40.0)
      addressable
      matrix
      mini_mime (>= 0.1.3)
      nokogiri (~> 1.8)
      nokogiri (~> 1.11)
      rack (>= 1.6.0)
      rack-test (>= 0.6.3)
      regexp_parser (>= 1.5, < 3.0)
      xpath (~> 3.2)
    childprocess (3.0.0)
    chunky_png (1.4.0)
    commonmarker (0.23.10)
    concurrent-ruby (1.2.2)
    concurrent-ruby (1.2.3)
    crass (1.0.6)
    css_parser (1.16.0)
      addressable
    csv (3.2.8)
    csv (3.2.9)
    date (3.3.4)
    deckar01-task_list (2.3.2)
      html-pipeline
    digest (3.1.1)
    docile (1.4.0)
    erubi (1.12.0)
    ffi (1.16.3)
@@ -96,67 +96,71 @@ GEM
      activesupport (>= 2)
      nokogiri (>= 1.4)
    htmlentities (4.3.4)
    i18n (1.10.0)
    i18n (1.14.4)
      concurrent-ruby (~> 1.0)
    listen (3.8.0)
    json (2.7.1)
    language_server-protocol (3.17.0.3)
    listen (3.9.0)
      rb-fsevent (~> 0.10, >= 0.10.3)
      rb-inotify (~> 0.9, >= 0.9.10)
    loofah (2.22.0)
      crass (~> 1.0.2)
      nokogiri (>= 1.12.0)
    mail (2.7.1)
    mail (2.8.1)
      mini_mime (>= 0.1.1)
    marcel (1.0.2)
      net-imap
      net-pop
      net-smtp
    marcel (1.0.4)
    matrix (0.4.2)
    method_source (1.0.0)
    mini_magick (4.11.0)
    mini_magick (4.12.0)
    mini_mime (1.1.5)
    mini_portile2 (2.8.5)
    minitest (5.20.0)
    minitest (5.22.3)
    mocha (2.1.0)
      ruby2_keywords (>= 0.0.5)
    mysql2 (0.5.5)
    net-imap (0.2.3)
      digest
    mysql2 (0.5.6)
    net-imap (0.3.7)
      date
      net-protocol
      strscan
    net-ldap (0.17.1)
    net-pop (0.1.2)
      net-protocol
    net-protocol (0.2.2)
      timeout
    net-smtp (0.3.3)
    net-smtp (0.3.4)
      net-protocol
    nio4r (2.6.1)
    nokogiri (1.15.5)
    nio4r (2.7.1)
    nokogiri (1.15.6)
      mini_portile2 (~> 2.8.2)
      racc (~> 1.4)
    parallel (1.23.0)
    parser (3.2.2.4)
    parallel (1.24.0)
    parser (3.3.0.5)
      ast (~> 2.4.1)
      racc
    pg (1.4.6)
    pg (1.5.6)
    public_suffix (5.0.4)
    puma (6.4.0)
    puma (6.4.2)
      nio4r (~> 2.0)
    racc (1.7.3)
    rack (2.2.8)
    rack (2.2.9)
    rack-test (2.1.0)
      rack (>= 1.3)
    rails (6.1.7.6)
      actioncable (= 6.1.7.6)
      actionmailbox (= 6.1.7.6)
      actionmailer (= 6.1.7.6)
      actionpack (= 6.1.7.6)
      actiontext (= 6.1.7.6)
      actionview (= 6.1.7.6)
      activejob (= 6.1.7.6)
      activemodel (= 6.1.7.6)
      activerecord (= 6.1.7.6)
      activestorage (= 6.1.7.6)
      activesupport (= 6.1.7.6)
    rails (6.1.7.7)
      actioncable (= 6.1.7.7)
      actionmailbox (= 6.1.7.7)
      actionmailer (= 6.1.7.7)
      actionpack (= 6.1.7.7)
      actiontext (= 6.1.7.7)
      actionview (= 6.1.7.7)
      activejob (= 6.1.7.7)
      activemodel (= 6.1.7.7)
      activerecord (= 6.1.7.7)
      activestorage (= 6.1.7.7)
      activesupport (= 6.1.7.7)
      bundler (>= 1.15.0)
      railties (= 6.1.7.6)
      railties (= 6.1.7.7)
      sprockets-rails (>= 2.0.0)
    rails-dom-testing (2.2.0)
      activesupport (>= 5.0.0)
@@ -165,9 +169,9 @@ GEM
    rails-html-sanitizer (1.6.0)
      loofah (~> 2.21)
      nokogiri (~> 1.14)
    railties (6.1.7.6)
      actionpack (= 6.1.7.6)
      activesupport (= 6.1.7.6)
    railties (6.1.7.7)
      actionpack (= 6.1.7.7)
      activesupport (= 6.1.7.7)
      method_source
      rake (>= 12.2)
      thor (~> 1.0)
@@ -180,51 +184,56 @@ GEM
      htmlentities
      rbpdf-font (~> 1.19.0)
    rbpdf-font (1.19.1)
    redcarpet (3.5.1)
    regexp_parser (2.8.2)
    redcarpet (3.6.0)
    regexp_parser (2.9.0)
    request_store (1.5.1)
      rack (>= 1.4)
    rexml (3.2.6)
    roadie (5.2.0)
    roadie (5.2.1)
      css_parser (~> 1.4)
      nokogiri (~> 1.15)
    roadie-rails (3.0.0)
      railties (>= 5.1, < 7.1)
    roadie-rails (3.1.0)
      railties (>= 5.1, < 8.0)
      roadie (~> 5.0)
    rotp (6.3.0)
    rouge (3.28.0)
    rouge (4.2.1)
    rqrcode (2.2.0)
      chunky_png (~> 1.0)
      rqrcode_core (~> 1.0)
    rqrcode_core (1.2.0)
    rubocop (1.26.1)
    rubocop (1.57.2)
      json (~> 2.3)
      language_server-protocol (>= 3.17.0)
      parallel (~> 1.10)
      parser (>= 3.1.0.0)
      parser (>= 3.2.2.4)
      rainbow (>= 2.2.2, < 4.0)
      regexp_parser (>= 1.8, < 3.0)
      rexml
      rubocop-ast (>= 1.16.0, < 2.0)
      rexml (>= 3.2.5, < 4.0)
      rubocop-ast (>= 1.28.1, < 2.0)
      ruby-progressbar (~> 1.7)
      unicode-display_width (>= 1.4.0, < 3.0)
    rubocop-ast (1.30.0)
      parser (>= 3.2.1.0)
    rubocop-performance (1.13.3)
      unicode-display_width (>= 2.4.0, < 3.0)
    rubocop-ast (1.31.2)
      parser (>= 3.3.0.4)
    rubocop-performance (1.19.1)
      rubocop (>= 1.7.0, < 2.0)
      rubocop-ast (>= 0.4.0)
    rubocop-rails (2.14.2)
    rubocop-rails (2.22.2)
      activesupport (>= 4.2.0)
      rack (>= 1.1)
      rubocop (>= 1.7.0, < 2.0)
      rubocop (>= 1.33.0, < 2.0)
      rubocop-ast (>= 1.30.0, < 2.0)
    ruby-progressbar (1.13.0)
    ruby2_keywords (0.0.5)
    rubyzip (2.3.2)
    sanitize (6.1.0)
      crass (~> 1.0.2)
      nokogiri (>= 1.12.0)
    selenium-webdriver (3.142.7)
      childprocess (>= 0.5, < 4.0)
      rubyzip (>= 1.2.2)
    simplecov (0.21.2)
    selenium-webdriver (4.18.1)
      base64 (~> 0.2)
      rexml (~> 3.2, >= 3.2.5)
      rubyzip (>= 1.2.2, < 3.0)
      websocket (~> 1.0)
    simplecov (0.22.0)
      docile (~> 1.1)
      simplecov-html (~> 0.11)
      simplecov_json_formatter (~> 0.1)
@@ -237,24 +246,25 @@ GEM
      actionpack (>= 5.2)
      activesupport (>= 5.2)
      sprockets (>= 3.0.0)
    strscan (3.0.7)
    thor (1.3.0)
    sqlite3 (1.6.9)
      mini_portile2 (~> 2.8.0)
    thor (1.3.1)
    timeout (0.4.1)
    tzinfo (2.0.6)
      concurrent-ruby (~> 1.0)
    unicode-display_width (2.5.0)
    webdrivers (4.6.1)
      nokogiri (~> 1.6)
      rubyzip (>= 1.3.0)
      selenium-webdriver (>= 3.0, < 4.0)
    webrick (1.8.1)
    websocket (1.2.10)
    websocket-driver (0.7.6)
      websocket-extensions (>= 0.1.0)
    websocket-extensions (0.1.5)
    with_advisory_lock (5.1.0)
      activerecord (>= 6.1)
      zeitwerk (>= 2.6)
    xpath (3.2.0)
      nokogiri (~> 1.8)
    yard (0.9.34)
    zeitwerk (2.6.12)
    yard (0.9.36)
    zeitwerk (2.6.13)

PLATFORMS
  ruby
@@ -262,52 +272,52 @@ PLATFORMS
DEPENDENCIES
  actionpack-xml_parser
  addressable
  bundler (>= 1.12.0)
  capybara (~> 3.38.0)
  capybara (>= 3.39)
  commonmarker (~> 0.23.8)
  csv (~> 3.2.0)
  csv (~> 3.2.6)
  deckar01-task_list (= 2.3.2)
  ffi
  html-pipeline (~> 2.13.2)
  i18n (~> 1.10.0)
  i18n (~> 1.14.1)
  listen (~> 3.3)
  mail (~> 2.7.1)
  mail (~> 2.8.1)
  marcel
  mini_magick (~> 4.11.0)
  mini_magick (~> 4.12.0)
  mini_mime (~> 1.1.0)
  mocha (>= 2.0.1)
  mysql2 (~> 0.5.0)
  net-imap (~> 0.2.2)
  net-imap (~> 0.3.4)
  net-ldap (~> 0.17.0)
  net-pop (~> 0.1.1)
  net-smtp (~> 0.3.0)
  net-pop (~> 0.1.2)
  net-smtp (~> 0.3.3)
  nokogiri (~> 1.15.2)
  pg (~> 1.4.2)
  pg (~> 1.5.3)
  puma
  rails (= 6.1.7.6)
  rails (= 6.1.7.7)
  rails-dom-testing
  rbpdf (~> 1.21.3)
  redcarpet (~> 3.5.1)
  redcarpet (~> 3.6.0)
  request_store (~> 1.5.0)
  rexml
  roadie-rails (~> 3.0.0)
  roadie-rails (~> 3.1.0)
  rotp (>= 5.0.0)
  rouge (~> 3.28.0)
  rouge (~> 4.2.0)
  rqrcode
  rubocop (~> 1.26.0)
  rubocop-performance (~> 1.13.0)
  rubocop-rails (~> 2.14.0)
  rubocop (~> 1.57.0)
  rubocop-performance (~> 1.19.0)
  rubocop-rails (~> 2.22.1)
  rubyzip (~> 2.3.0)
  sanitize (~> 6.0)
  selenium-webdriver (~> 3.142.7)
  simplecov (~> 0.21.2)
  selenium-webdriver (>= 4.11.0)
  simplecov (~> 0.22.0)
  sqlite3 (~> 1.6.0)
  tzinfo-data
  webdrivers (= 4.6.1)
  webrick
  with_advisory_lock
  yard

RUBY VERSION
   ruby 3.1.4p223

BUNDLED WITH
   2.4.12
   2.4.22
Loading