2013-09-03 17:40:54 +02:00
|
|
|
#-- copyright
|
2020-01-15 11:31:26 +01:00
|
|
|
# OpenProject is an open source project management software.
|
2024-07-30 13:42:36 +02:00
|
|
|
# Copyright (C) the OpenProject GmbH
|
2013-09-03 17:40:54 +02:00
|
|
|
#
|
|
|
|
|
# This program is free software; you can redistribute it and/or
|
|
|
|
|
# modify it under the terms of the GNU General Public License version 3.
|
|
|
|
|
#
|
2013-09-16 17:59:31 +02:00
|
|
|
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
|
2021-01-13 17:47:45 +01:00
|
|
|
# Copyright (C) 2006-2013 Jean-Philippe Lang
|
2013-09-16 17:59:31 +02:00
|
|
|
# Copyright (C) 2010-2013 the ChiliProject Team
|
|
|
|
|
#
|
|
|
|
|
# This program is free software; you can redistribute it and/or
|
|
|
|
|
# modify it under the terms of the GNU General Public License
|
|
|
|
|
# as published by the Free Software Foundation; either version 2
|
|
|
|
|
# of the License, or (at your option) any later version.
|
|
|
|
|
#
|
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
# GNU General Public License for more details.
|
|
|
|
|
#
|
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
|
|
|
# along with this program; if not, write to the Free Software
|
|
|
|
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
|
#
|
2021-09-02 21:49:06 +02:00
|
|
|
# See COPYRIGHT and LICENSE files for more details.
|
2013-09-03 17:40:54 +02:00
|
|
|
#++
|
|
|
|
|
|
2013-02-12 17:45:42 +01:00
|
|
|
source "https://rubygems.org"
|
2011-03-18 21:25:45 +01:00
|
|
|
|
2024-01-08 16:45:12 +02:00
|
|
|
# TODO: Once packager.io and heroku buildpacks support bundler 2.4.22,
|
|
|
|
|
# then we can use the new bundler syntax `ruby file: '.ruby-version'`.
|
|
|
|
|
# https://github.com/heroku/heroku-buildpack-ruby/issues/1408#issuecomment-1841596215
|
|
|
|
|
|
2024-10-09 16:01:29 +02:00
|
|
|
ruby File.read(File.expand_path(".ruby-version", __dir__)).strip
|
2016-09-05 14:25:31 +02:00
|
|
|
|
2016-09-14 13:47:54 +02:00
|
|
|
gem "actionpack-xml_parser", "~> 2.0.0"
|
|
|
|
|
gem "activemodel-serializers-xml", "~> 1.0.1"
|
2025-02-07 14:09:43 +01:00
|
|
|
gem "activerecord-import", "~> 2.1.0"
|
2025-03-26 15:16:27 +01:00
|
|
|
gem "activerecord-session_store", "~> 2.2.0"
|
2023-11-08 08:15:20 +01:00
|
|
|
gem "ox"
|
2025-03-10 17:45:45 +01:00
|
|
|
gem "rails", "~> 8.0.1"
|
2019-09-20 08:34:51 +02:00
|
|
|
gem "responders", "~> 3.0"
|
2011-03-18 21:25:45 +01:00
|
|
|
|
2022-03-31 08:37:56 +00:00
|
|
|
gem "ffi", "~> 1.15"
|
|
|
|
|
|
2015-06-30 12:04:59 +02:00
|
|
|
gem "rdoc", ">= 2.4.2"
|
2016-09-06 11:06:09 +02:00
|
|
|
|
2024-11-13 09:59:42 +01:00
|
|
|
gem "doorkeeper", "~> 5.8.0"
|
2019-01-23 14:54:43 +01:00
|
|
|
# Maintain our own omniauth due to relative URL root issues
|
|
|
|
|
# see upstream PR: https://github.com/omniauth/omniauth/pull/903
|
2025-02-27 09:15:09 +01:00
|
|
|
gem "omniauth", git: "https://github.com/opf/omniauth", ref: "7eb21563ba047ef86d71f099975587b5ec88f9c9"
|
2024-05-02 07:09:10 +08:00
|
|
|
gem "request_store", "~> 1.7.0"
|
2013-10-10 09:51:30 +02:00
|
|
|
|
2015-05-05 18:51:30 +01:00
|
|
|
gem "warden", "~> 1.2"
|
2015-07-07 14:40:27 +02:00
|
|
|
gem "warden-basic_auth", "~> 0.2.1"
|
2015-05-05 18:51:30 +01:00
|
|
|
|
2023-05-31 16:37:30 +02:00
|
|
|
gem "will_paginate", "~> 4.0.0"
|
2012-09-03 16:27:42 +02:00
|
|
|
|
2022-11-23 10:17:26 +01:00
|
|
|
gem "friendly_id", "~> 5.5.0"
|
2015-07-06 10:55:21 +02:00
|
|
|
|
2024-06-20 11:00:08 +02:00
|
|
|
gem "acts_as_list", "~> 1.2.0"
|
2019-09-20 08:34:51 +02:00
|
|
|
gem "acts_as_tree", "~> 2.9.0"
|
2024-12-02 17:51:10 +01:00
|
|
|
gem "awesome_nested_set", "~> 3.8.0"
|
2022-03-19 23:26:32 +01:00
|
|
|
gem "closure_tree", "~> 7.4.0"
|
2024-08-14 14:54:52 +02:00
|
|
|
gem "rubytree", "~> 2.1.0"
|
2022-03-19 23:26:32 +01:00
|
|
|
# Only used in down migrations now.
|
|
|
|
|
# Is to be removed once the referencing migrations have been squashed.
|
|
|
|
|
gem "typed_dag", "~> 2.0.2", require: false
|
2013-02-12 17:45:42 +01:00
|
|
|
|
2021-07-14 12:06:15 +02:00
|
|
|
gem "addressable", "~> 2.8.0"
|
2018-08-16 15:01:37 +02:00
|
|
|
|
2020-03-25 13:00:44 +01:00
|
|
|
# Remove whitespace from model input
|
2024-01-31 18:35:06 +02:00
|
|
|
gem "auto_strip_attributes", "~> 2.5"
|
2020-03-25 13:00:44 +01:00
|
|
|
|
2015-09-24 14:16:18 +02:00
|
|
|
# Provide timezone info for TZInfo used by AR
|
2025-01-27 22:23:39 +01:00
|
|
|
gem "tzinfo-data", "~> 1.2025.1"
|
2015-09-24 14:16:18 +02:00
|
|
|
|
2013-02-12 17:45:42 +01:00
|
|
|
# to generate html-diffs (e.g. for wiki comparison)
|
|
|
|
|
gem "htmldiff"
|
|
|
|
|
|
2016-07-22 15:59:36 +02:00
|
|
|
# Generate url slugs with #to_url and other string niceties
|
2019-01-16 14:47:29 +01:00
|
|
|
gem "stringex", "~> 2.8.5"
|
2016-07-22 15:59:36 +02:00
|
|
|
|
2017-11-09 14:18:43 +01:00
|
|
|
# CommonMark markdown parser with GFM extension
|
2025-04-08 10:44:11 +02:00
|
|
|
gem "commonmarker", "~> 2.3.0"
|
2018-07-09 09:57:33 +02:00
|
|
|
|
2017-11-09 14:18:43 +01:00
|
|
|
# HTML pipeline for transformations on text formatter output
|
|
|
|
|
# such as sanitization or additional features
|
2020-08-28 13:27:06 +02:00
|
|
|
gem "html-pipeline", "~> 2.14.0"
|
2019-08-14 09:07:18 +02:00
|
|
|
# Tasklist parsing and renderer
|
2020-03-05 17:10:42 +01:00
|
|
|
gem "deckar01-task_list", "~> 2.3.1"
|
2018-07-09 09:57:33 +02:00
|
|
|
# Requires escape-utils for faster escaping
|
2022-06-16 15:01:29 +02:00
|
|
|
gem "escape_utils", "~> 1.3"
|
2018-07-09 09:57:33 +02:00
|
|
|
# Syntax highlighting used in html-pipeline with rouge
|
2024-11-13 10:00:43 +01:00
|
|
|
gem "rouge", "~> 4.5.1"
|
2017-11-09 14:18:43 +01:00
|
|
|
# HTML sanitization used for html-pipeline
|
2025-01-06 11:44:02 +01:00
|
|
|
gem "sanitize", "~> 7.0.0"
|
2018-02-22 09:23:01 +01:00
|
|
|
# HTML autolinking for mails and urls (replaces autolink)
|
2023-08-15 09:09:48 -05:00
|
|
|
gem "rinku", "~> 2.0.4", require: %w[rinku rails_rinku]
|
2018-09-14 13:54:40 +02:00
|
|
|
# Version parsing with semver
|
|
|
|
|
gem "semantic", "~> 1.6.1"
|
2018-02-22 09:23:01 +01:00
|
|
|
|
2013-10-15 08:27:08 +02:00
|
|
|
# generates SVG Graphs
|
|
|
|
|
# used for statistics on svn repositories
|
2020-08-25 10:48:12 +02:00
|
|
|
gem "svg-graph", "~> 2.2.0"
|
2013-10-15 08:27:08 +02:00
|
|
|
|
2021-08-09 09:09:27 +02:00
|
|
|
gem "date_validator", "~> 0.12.0"
|
2021-07-27 20:04:35 +02:00
|
|
|
gem "email_validator", "~> 2.2.3"
|
2025-02-07 14:10:29 +01:00
|
|
|
gem "json_schemer", "~> 2.4.0"
|
2014-11-17 15:03:09 +01:00
|
|
|
gem "ruby-duration", "~> 3.2.0"
|
2013-08-27 16:15:38 +02:00
|
|
|
|
2023-04-15 23:47:07 +08:00
|
|
|
# `config/initializers/mail_starttls_patch.rb` has also been patched to
|
|
|
|
|
# fix STARTTLS handling until https://github.com/mikel/mail/pull/1536 is
|
|
|
|
|
# released.
|
|
|
|
|
gem "mail", "= 2.8.1"
|
2023-02-08 09:15:11 +01:00
|
|
|
|
2024-04-29 08:03:08 +02:00
|
|
|
gem "csv", "~> 3.3"
|
|
|
|
|
|
2015-08-18 17:51:34 +02:00
|
|
|
# provide compatible filesystem information for available storage
|
2024-06-20 11:19:34 +02:00
|
|
|
gem "sys-filesystem", "~> 1.5.0", require: false
|
2015-08-18 17:51:34 +02:00
|
|
|
|
2016-08-29 20:36:42 +02:00
|
|
|
gem "bcrypt", "~> 3.1.6"
|
|
|
|
|
|
2020-08-14 15:42:57 +02:00
|
|
|
gem "multi_json", "~> 1.15.0"
|
2023-08-28 15:47:23 +02:00
|
|
|
gem "oj", "~> 3.16.0"
|
2013-10-15 16:29:02 +02:00
|
|
|
|
2013-11-01 14:10:09 +01:00
|
|
|
gem "daemons"
|
2024-12-02 12:22:13 +01:00
|
|
|
gem "good_job", "= 3.99.1" # update should be done manually in sync with saas-openproject version.
|
2013-11-01 14:10:09 +01:00
|
|
|
|
2024-01-02 09:01:19 +01:00
|
|
|
gem "rack-protection", "~> 3.2.0"
|
2013-10-28 16:14:03 +01:00
|
|
|
|
2015-02-17 16:39:40 +01:00
|
|
|
# Rack::Attack is a rack middleware to protect your web app from bad clients.
|
2016-09-14 13:47:54 +02:00
|
|
|
# It allows whitelisting, blacklisting, throttling, and tracking based
|
|
|
|
|
# on arbitrary properties of the request.
|
2015-02-12 16:30:03 +02:00
|
|
|
# https://github.com/kickstarter/rack-attack
|
2023-08-28 15:48:30 +02:00
|
|
|
gem "rack-attack", "~> 6.7.0"
|
2015-02-12 16:30:03 +02:00
|
|
|
|
2017-08-28 11:24:18 +02:00
|
|
|
# CSP headers
|
2025-01-06 11:44:51 +01:00
|
|
|
gem "secure_headers", "~> 7.1.0"
|
2017-08-28 11:24:18 +02:00
|
|
|
|
2019-02-04 09:55:56 +01:00
|
|
|
# Browser detection for incompatibility checks
|
2024-12-16 10:00:00 +01:00
|
|
|
gem "browser", "~> 6.2.0"
|
2019-02-04 09:55:56 +01:00
|
|
|
|
2017-06-16 08:48:30 +02:00
|
|
|
# Providing health checks
|
2025-03-05 09:17:28 +01:00
|
|
|
gem "okcomputer", "~> 1.19.0"
|
2017-06-16 08:48:30 +02:00
|
|
|
|
2020-09-23 10:25:47 +02:00
|
|
|
gem "gon", "~> 6.4.0"
|
2013-12-02 11:50:34 +01:00
|
|
|
|
2019-01-22 14:29:24 +01:00
|
|
|
# Lograge to provide sane and non-verbose logging
|
2023-10-20 13:48:29 +02:00
|
|
|
gem "lograge", "~> 0.14.0"
|
2019-01-22 14:29:24 +01:00
|
|
|
|
2020-09-02 08:14:30 +02:00
|
|
|
# Structured warnings to selectively disable them in production
|
2025-04-16 08:05:03 +02:00
|
|
|
gem "structured_warnings", "~> 0.5.0"
|
2020-09-02 08:14:30 +02:00
|
|
|
|
2014-09-03 14:22:38 +02:00
|
|
|
# catch exceptions and send them to any airbrake compatible backend
|
2015-07-23 13:50:10 +02:00
|
|
|
# don't require by default, instead load on-demand when actually configured
|
2022-01-19 11:03:21 +01:00
|
|
|
gem "airbrake", "~> 13.0.0", require: false
|
2014-09-03 14:22:38 +02:00
|
|
|
|
2025-04-22 11:51:00 +02:00
|
|
|
gem "markly", "~> 0.13" # another markdown parser like commonmarker, but with AST support used in PDF export
|
|
|
|
|
gem "md_to_pdf", git: "https://github.com/opf/md-to-pdf", ref: "67d14c6c7a13f918d158bde1a51ef1067a8cf724"
|
2023-11-08 08:15:20 +01:00
|
|
|
gem "prawn", "~> 2.4"
|
2024-05-13 14:57:41 +08:00
|
|
|
gem "ttfunk", "~> 1.7.0" # remove after https://github.com/prawnpdf/prawn/issues/1346 resolved.
|
2024-05-30 15:45:32 +02:00
|
|
|
|
2022-11-08 05:30:02 -05:00
|
|
|
# prawn implicitly depends on matrix gem no longer in ruby core with 3.1
|
2022-05-11 13:30:20 +02:00
|
|
|
gem "matrix", "~> 0.4.2"
|
2016-05-06 09:53:38 +01:00
|
|
|
|
2024-08-14 14:53:38 +02:00
|
|
|
gem "meta-tags", "~> 2.22.0"
|
2017-08-21 14:38:11 +02:00
|
|
|
|
2025-02-07 14:12:38 +01:00
|
|
|
gem "paper_trail", "~> 16.0.0"
|
2022-06-29 15:02:05 +02:00
|
|
|
|
2024-04-22 15:37:31 +02:00
|
|
|
gem "op-clamav-client", "~> 3.4", require: "clamav"
|
2024-02-06 15:04:50 +01:00
|
|
|
|
2024-12-04 17:12:14 +01:00
|
|
|
# Recurring meeting events definition
|
|
|
|
|
gem "ice_cube", "~> 0.17.0"
|
|
|
|
|
|
2013-03-19 15:11:04 +01:00
|
|
|
group :production do
|
2013-11-15 11:55:46 +01:00
|
|
|
# we use dalli as standard memcache client
|
2013-04-25 11:15:25 +02:00
|
|
|
# requires memcached 1.4+
|
2022-01-05 14:56:20 +01:00
|
|
|
gem "dalli", "~> 3.2.0"
|
2025-03-05 09:18:56 +01:00
|
|
|
gem "redis", "~> 5.4.0"
|
2013-03-19 15:11:04 +01:00
|
|
|
end
|
|
|
|
|
|
2023-07-18 21:39:33 +02:00
|
|
|
gem "i18n-js", "~> 4.2.3"
|
2025-03-10 17:45:45 +01:00
|
|
|
gem "rails-i18n", "~> 8.0.0"
|
2022-05-23 10:45:26 +02:00
|
|
|
|
|
|
|
|
gem "sprockets", "~> 3.7.2" # lock sprockets below 4.0
|
2024-06-08 07:39:51 +08:00
|
|
|
gem "sprockets-rails", "~> 3.5.1"
|
2014-05-15 11:12:35 +02:00
|
|
|
|
2024-11-25 10:44:04 +02:00
|
|
|
gem "puma", "~> 6.5"
|
2021-10-04 14:42:37 +01:00
|
|
|
gem "puma-plugin-statsd", "~> 2.0"
|
2024-05-24 09:34:50 +02:00
|
|
|
gem "rack-timeout", "~> 0.7.0", require: "rack/timeout/base"
|
2019-07-11 10:32:21 +01:00
|
|
|
|
2025-04-22 05:02:19 +00:00
|
|
|
gem "nokogiri", "~> 1.18.8"
|
2014-04-24 08:59:11 +02:00
|
|
|
|
2024-05-03 07:51:28 +08:00
|
|
|
gem "carrierwave", "~> 1.3.4"
|
2020-07-03 13:17:16 +01:00
|
|
|
gem "carrierwave_direct", "~> 2.1.0"
|
2019-01-15 13:04:33 +01:00
|
|
|
gem "fog-aws"
|
2014-04-24 08:59:11 +02:00
|
|
|
|
2020-09-23 10:29:26 +02:00
|
|
|
gem "aws-sdk-core", "~> 3.107"
|
2018-05-03 07:34:56 +02:00
|
|
|
# File upload via fog + screenshots on travis
|
2021-03-18 10:48:58 +01:00
|
|
|
gem "aws-sdk-s3", "~> 1.91"
|
2018-01-16 14:49:29 +01:00
|
|
|
|
2025-04-24 13:44:21 +02:00
|
|
|
gem "openproject-token", "~> 5.3.0"
|
2016-10-31 13:42:45 +01:00
|
|
|
|
2019-09-03 10:35:54 +02:00
|
|
|
gem "plaintext", "~> 0.3.2"
|
2016-10-31 13:42:45 +01:00
|
|
|
|
2023-03-20 09:02:42 +01:00
|
|
|
gem "ruby-progressbar", "~> 1.13.0", require: false
|
2018-08-28 11:10:38 +02:00
|
|
|
|
2025-03-05 09:16:46 +01:00
|
|
|
gem "mini_magick", "~> 5.2.0", require: false
|
2020-11-24 14:35:40 +01:00
|
|
|
|
2022-03-10 11:38:44 +01:00
|
|
|
gem "validate_url"
|
|
|
|
|
|
2023-07-27 18:00:44 +02:00
|
|
|
# Storages support code
|
2024-07-15 18:24:00 +02:00
|
|
|
gem "dry-auto_inject"
|
2024-01-31 18:35:06 +02:00
|
|
|
gem "dry-container"
|
2024-06-07 12:39:26 +02:00
|
|
|
gem "dry-monads"
|
2024-08-14 17:20:18 +02:00
|
|
|
gem "dry-validation"
|
2023-07-27 18:00:44 +02:00
|
|
|
|
2023-07-10 17:56:45 +03:00
|
|
|
# ActiveRecord extension which adds typecasting to store accessors
|
2025-01-06 11:47:08 +01:00
|
|
|
gem "store_attribute", "~> 2.0"
|
2023-07-10 17:56:45 +03:00
|
|
|
|
2022-05-31 13:47:40 +02:00
|
|
|
# Appsignal integration
|
2024-11-25 17:37:27 +00:00
|
|
|
gem "appsignal", "~> 3.10.0", require: false
|
2022-05-31 13:47:40 +02:00
|
|
|
|
2025-04-03 13:18:28 +03:00
|
|
|
# Yabeda integration
|
|
|
|
|
gem "yabeda-activerecord"
|
|
|
|
|
gem "yabeda-prometheus-mmap"
|
|
|
|
|
gem "yabeda-puma-plugin"
|
|
|
|
|
gem "yabeda-rails"
|
|
|
|
|
|
2023-02-03 11:30:57 +01:00
|
|
|
gem "view_component"
|
2023-07-31 16:17:03 +02:00
|
|
|
# Lookbook
|
2024-10-31 15:32:47 +01:00
|
|
|
gem "lookbook", "~> 2.3.4"
|
2023-02-03 11:30:57 +01:00
|
|
|
|
2023-09-19 16:36:22 +02:00
|
|
|
# Require factory_bot for usage with openproject plugins testing
|
2024-09-09 10:52:05 -05:00
|
|
|
gem "factory_bot", "~> 6.5.0", require: false
|
2023-09-19 16:36:22 +02:00
|
|
|
# require factory_bot_rails for convenience in core development
|
2024-10-28 09:07:06 -05:00
|
|
|
gem "factory_bot_rails", "~> 6.4.4", require: false
|
2023-09-19 16:36:22 +02:00
|
|
|
|
2024-12-16 09:55:49 +01:00
|
|
|
gem "turbo_power", "~> 0.7.0"
|
2024-02-09 11:17:12 +01:00
|
|
|
gem "turbo-rails", "~> 2.0.0"
|
2023-06-19 09:29:38 +02:00
|
|
|
|
2025-02-18 16:15:48 +01:00
|
|
|
# There is a problem with version 1.4.0. Do not update until you're sure there is no infinite hang
|
|
|
|
|
# happenning in failing tests when WebMock or VCR stub cannot be found.
|
2025-02-14 17:13:18 +01:00
|
|
|
gem "httpx", "~> 1.3.4"
|
2023-10-24 17:50:57 +02:00
|
|
|
|
2024-12-27 10:20:47 +01:00
|
|
|
# Brings actual deep freezing to most ruby objects
|
|
|
|
|
gem "ice_nine"
|
|
|
|
|
|
2013-02-12 17:45:42 +01:00
|
|
|
group :test do
|
2025-01-27 22:21:58 +01:00
|
|
|
gem "launchy", "~> 3.1.0"
|
2024-12-25 10:44:57 +08:00
|
|
|
gem "rack-test", "~> 2.2.0"
|
2020-08-28 13:22:29 +02:00
|
|
|
gem "shoulda-context", "~> 2.0"
|
2015-09-30 18:55:49 +02:00
|
|
|
|
2017-08-16 07:57:26 +02:00
|
|
|
# Test prof provides factories from code
|
|
|
|
|
# and other niceties
|
2024-08-14 14:56:39 +02:00
|
|
|
gem "test-prof", "~> 1.4.0"
|
2024-04-08 16:06:03 +02:00
|
|
|
gem "turbo_tests", github: "opf/turbo_tests", ref: "with-patches"
|
2017-08-16 07:57:26 +02:00
|
|
|
|
2013-04-09 14:52:02 +02:00
|
|
|
gem "rack_session_access"
|
2024-02-09 11:11:25 +01:00
|
|
|
gem "rspec", "~> 3.13.0"
|
2024-01-31 18:35:06 +02:00
|
|
|
# also add to development group, so 'spec' rake task gets loaded
|
2024-11-13 10:01:26 +01:00
|
|
|
gem "rspec-rails", "~> 7.1.0", group: :development
|
2016-09-06 11:06:09 +02:00
|
|
|
|
2016-10-26 13:45:48 +02:00
|
|
|
# Retry failures within the same environment
|
2018-04-11 12:48:41 +02:00
|
|
|
gem "retriable", "~> 3.1.1"
|
2019-01-11 09:29:16 +01:00
|
|
|
gem "rspec-retry", "~> 0.6.1"
|
2016-10-26 13:45:48 +02:00
|
|
|
|
2023-10-30 10:11:17 +01:00
|
|
|
# Accessibility tests
|
|
|
|
|
gem "axe-core-rspec"
|
|
|
|
|
|
2023-06-15 16:06:59 +02:00
|
|
|
# Modify ENV
|
|
|
|
|
gem "climate_control"
|
|
|
|
|
|
2019-11-22 10:32:13 +01:00
|
|
|
# XML comparison tests
|
|
|
|
|
gem "compare-xml", "~> 0.66", require: false
|
|
|
|
|
|
2023-07-25 16:38:21 +02:00
|
|
|
# PDF Export tests
|
|
|
|
|
gem "pdf-inspector", "~> 1.2"
|
|
|
|
|
|
2016-09-07 13:19:30 +02:00
|
|
|
# brings back testing for 'assigns' and 'assert_template' extracted in rails 5
|
2017-07-19 21:17:37 +02:00
|
|
|
gem "rails-controller-testing", "~> 1.0.2"
|
2016-09-07 13:19:30 +02:00
|
|
|
|
2024-01-29 09:58:14 +01:00
|
|
|
gem "capybara", "~> 3.40.0"
|
2024-12-18 09:45:46 +02:00
|
|
|
gem "capybara_accessible_selectors", git: "https://github.com/citizensadvice/capybara_accessible_selectors", tag: "v0.12.0"
|
2018-04-26 10:15:36 +02:00
|
|
|
gem "capybara-screenshot", "~> 1.0.17"
|
2023-11-06 11:05:16 +01:00
|
|
|
gem "cuprite", "~> 0.15.0"
|
2025-02-26 11:59:11 +01:00
|
|
|
gem "ferrum", github: "opf/ferrum", ref: "mouse-events-buttons-property-0.15"
|
2024-09-19 17:12:32 +02:00
|
|
|
gem "rspec-wait"
|
2023-12-15 17:21:00 +01:00
|
|
|
gem "selenium-devtools"
|
2024-04-25 22:25:05 +08:00
|
|
|
gem "selenium-webdriver", "~> 4.20"
|
2018-04-04 07:59:59 +02:00
|
|
|
|
2024-07-05 09:52:38 +02:00
|
|
|
gem "fuubar", "~> 2.5.0", require: false
|
2017-07-20 11:27:57 +02:00
|
|
|
gem "timecop", "~> 0.9.0"
|
2020-04-09 13:03:46 +02:00
|
|
|
|
2023-09-13 13:35:05 +03:00
|
|
|
# Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.
|
|
|
|
|
gem "vcr"
|
2020-04-09 13:03:46 +02:00
|
|
|
# Mock backend requests (for ruby tests)
|
2021-03-09 09:49:54 +01:00
|
|
|
gem "webmock", "~> 3.12", require: false
|
2013-02-12 17:45:42 +01:00
|
|
|
|
2020-04-09 13:03:46 +02:00
|
|
|
# Mock selenium requests through proxy (for feature tests)
|
2023-08-31 09:27:53 +02:00
|
|
|
gem "puffing-billy", "~> 4.0.0"
|
2020-04-16 12:02:35 +02:00
|
|
|
gem "table_print", "~> 1.5.6"
|
2020-04-09 13:03:46 +02:00
|
|
|
|
2016-03-15 22:20:30 +01:00
|
|
|
gem "equivalent-xml", "~> 0.6"
|
2019-01-15 13:04:33 +01:00
|
|
|
gem "json_spec", "~> 1.1.4"
|
2024-01-02 09:05:22 +01:00
|
|
|
gem "shoulda-matchers", "~> 6.0", require: nil
|
2016-09-12 12:52:10 +02:00
|
|
|
|
2022-11-07 10:09:58 +01:00
|
|
|
gem "parallel_tests", "~> 4.0"
|
2011-03-18 21:25:45 +01:00
|
|
|
end
|
|
|
|
|
|
2011-11-25 20:54:23 +01:00
|
|
|
group :ldap do
|
2024-01-26 09:24:51 +01:00
|
|
|
gem "net-ldap", "~> 0.19.0"
|
2011-11-25 20:54:23 +01:00
|
|
|
end
|
|
|
|
|
|
2013-02-12 17:45:42 +01:00
|
|
|
group :development do
|
2024-03-01 12:55:53 -05:00
|
|
|
gem "listen", "~> 3.9.0" # Use for event-based reloaders
|
2019-12-12 08:41:44 +01:00
|
|
|
|
2024-04-08 16:06:03 +02:00
|
|
|
gem "letter_opener_web"
|
2014-07-09 14:44:02 +02:00
|
|
|
|
2019-01-11 10:34:27 +01:00
|
|
|
gem "spring"
|
|
|
|
|
gem "spring-commands-rspec"
|
2023-08-22 12:29:12 -05:00
|
|
|
gem "spring-commands-rubocop"
|
2019-01-11 10:34:27 +01:00
|
|
|
|
2023-02-22 11:36:44 +01:00
|
|
|
gem "colored2"
|
2023-06-16 15:11:13 +03:00
|
|
|
|
|
|
|
|
# git hooks manager
|
|
|
|
|
gem "lefthook", require: false
|
2012-10-24 16:12:22 +02:00
|
|
|
end
|
|
|
|
|
|
2016-09-20 13:15:50 +02:00
|
|
|
group :development, :test do
|
2022-05-03 15:37:25 +02:00
|
|
|
gem "dotenv-rails"
|
2019-11-21 11:29:23 +01:00
|
|
|
|
2018-11-30 15:38:54 +01:00
|
|
|
# Tracing and profiling gems
|
|
|
|
|
gem "flamegraph", require: false
|
2019-01-15 13:04:33 +01:00
|
|
|
gem "rack-mini-profiler", require: false
|
|
|
|
|
gem "ruby-prof", require: false
|
2018-11-30 15:38:54 +01:00
|
|
|
gem "stackprof", require: false
|
2024-10-30 09:46:03 +01:00
|
|
|
gem "vernier", require: false
|
2018-11-30 15:38:54 +01:00
|
|
|
|
2024-07-17 15:00:58 +02:00
|
|
|
# Output a stack trace anytime, useful when a process is stuck
|
|
|
|
|
gem "rbtrace"
|
|
|
|
|
|
2024-12-03 10:26:03 +01:00
|
|
|
# REPL with debug commands, Debug changed to byebug due to the issue below
|
|
|
|
|
# https://github.com/puma/puma/issues/2835#issuecomment-2302133927
|
|
|
|
|
gem "byebug"
|
2022-12-05 14:43:20 +01:00
|
|
|
|
2025-04-08 10:45:55 +02:00
|
|
|
gem "pry-byebug", "~> 3.11.0", platforms: [:mri]
|
2017-04-07 15:55:42 +02:00
|
|
|
gem "pry-rails", "~> 0.3.6"
|
2024-01-26 09:24:11 +01:00
|
|
|
gem "pry-rescue", "~> 1.6.0"
|
2019-09-09 11:01:37 +02:00
|
|
|
|
2022-06-16 11:23:28 +02:00
|
|
|
# ruby linting
|
2024-04-12 15:11:02 +02:00
|
|
|
gem "rubocop", require: false
|
2024-06-12 11:23:09 +02:00
|
|
|
gem "rubocop-capybara", require: false
|
|
|
|
|
gem "rubocop-factory_bot", require: false
|
2024-07-05 16:25:00 +02:00
|
|
|
gem "rubocop-openproject", require: false
|
2023-11-08 08:15:20 +01:00
|
|
|
gem "rubocop-performance", require: false
|
2022-07-01 15:41:40 +02:00
|
|
|
gem "rubocop-rails", require: false
|
|
|
|
|
gem "rubocop-rspec", require: false
|
2024-06-12 11:23:09 +02:00
|
|
|
gem "rubocop-rspec_rails", require: false
|
2022-06-16 11:23:28 +02:00
|
|
|
|
2023-09-14 10:41:38 +02:00
|
|
|
# erb linting
|
2024-01-31 18:35:06 +02:00
|
|
|
gem "erb_lint", require: false
|
|
|
|
|
gem "erblint-github", require: false
|
2023-09-14 10:41:38 +02:00
|
|
|
|
2019-09-09 11:01:37 +02:00
|
|
|
# Brakeman scanner
|
2025-01-06 11:41:14 +01:00
|
|
|
gem "brakeman", "~> 7.0.0"
|
2023-12-13 19:32:23 +03:00
|
|
|
|
|
|
|
|
# i18n-tasks helps find and manage missing and unused translations.
|
2024-07-05 09:50:33 +02:00
|
|
|
gem "i18n-tasks", "~> 1.0.13", require: false
|
2025-02-25 12:08:19 -03:00
|
|
|
|
|
|
|
|
# Active Record Doctor helps to keep the database in good shape.
|
|
|
|
|
gem "active_record_doctor", "~> 1.15.0"
|
2016-09-20 13:15:50 +02:00
|
|
|
end
|
|
|
|
|
|
2024-02-09 11:12:53 +01:00
|
|
|
gem "bootsnap", "~> 1.18.0", require: false
|
2019-01-10 14:25:48 +00:00
|
|
|
|
2014-06-11 19:26:31 +02:00
|
|
|
# API gems
|
2025-03-05 09:13:18 +01:00
|
|
|
gem "grape", "~> 2.3.0"
|
2021-09-17 10:43:18 +02:00
|
|
|
gem "grape_logging", "~> 1.8.4"
|
2023-01-23 09:20:42 +01:00
|
|
|
gem "roar", "~> 1.2.0"
|
2014-06-11 19:26:31 +02:00
|
|
|
|
2020-08-24 10:19:21 +02:00
|
|
|
# CORS for API
|
2024-03-04 19:00:12 +00:00
|
|
|
gem "rack-cors", "~> 2.0.2"
|
2020-08-24 10:19:21 +02:00
|
|
|
|
2023-03-09 07:27:27 +01:00
|
|
|
# Gmail API
|
|
|
|
|
gem "google-apis-gmail_v1", require: false
|
|
|
|
|
gem "googleauth", require: false
|
|
|
|
|
|
2020-08-17 08:46:42 +02:00
|
|
|
# Required for contracts
|
2021-12-02 17:01:13 +01:00
|
|
|
gem "disposable", "~> 0.6.2"
|
2014-06-11 19:26:31 +02:00
|
|
|
|
2014-11-25 09:53:42 +00:00
|
|
|
platforms :mri, :mingw, :x64_mingw do
|
2011-03-18 21:25:45 +01:00
|
|
|
group :postgres do
|
2023-04-26 10:40:06 +02:00
|
|
|
gem "pg", "~> 1.5.0"
|
2011-03-18 21:25:45 +01:00
|
|
|
end
|
2019-03-07 08:59:45 +01:00
|
|
|
|
|
|
|
|
# Support application loading when no database exists yet.
|
2024-11-19 11:25:06 +01:00
|
|
|
gem "activerecord-nulldb-adapter", "~> 1.1.1"
|
2020-02-26 11:40:50 +01:00
|
|
|
|
|
|
|
|
# Have application level locks on the database to have a mutex shared between workers/hosts.
|
2020-08-17 08:46:42 +02:00
|
|
|
# We e.g. employ this to safeguard the creation of journals.
|
2024-01-26 09:20:24 +01:00
|
|
|
gem "with_advisory_lock", "~> 5.1.0"
|
2011-07-22 14:08:39 -07:00
|
|
|
end
|
|
|
|
|
|
2021-11-25 13:12:55 +01:00
|
|
|
# Load Gemfile.modules explicitly to allow dependabot to work
|
|
|
|
|
eval_gemfile "./Gemfile.modules"
|
|
|
|
|
|
|
|
|
|
# Load Gemfile.local, Gemfile.plugins and custom Gemfiles
|
|
|
|
|
gemfiles = Dir.glob File.expand_path("{Gemfile.plugins,Gemfile.local}", __dir__)
|
2016-02-16 17:19:43 +01:00
|
|
|
gemfiles << ENV["CUSTOM_PLUGIN_GEMFILE"] unless ENV["CUSTOM_PLUGIN_GEMFILE"].nil?
|
|
|
|
|
gemfiles.each do |file|
|
2021-11-24 16:52:13 +01:00
|
|
|
# We use send to allow dependabot to function
|
|
|
|
|
# don't use eval_gemfile(file) here as it will break dependabot!
|
|
|
|
|
send(:eval_gemfile, file) if File.readable?(file)
|
2011-03-18 21:25:45 +01:00
|
|
|
end
|
2023-07-11 12:04:14 +02:00
|
|
|
|
2025-04-28 09:03:22 +02:00
|
|
|
gem "openproject-octicons", "~>19.25.0"
|
|
|
|
|
gem "openproject-octicons_helper", "~>19.25.0"
|
2025-04-23 07:17:08 +02:00
|
|
|
gem "openproject-primer_view_components", "~>0.63.0"
|