paper-trail-gem--paper_trail/paper_trail.gemspec

88 lines
3.7 KiB
Ruby

# frozen_string_literal: true
$LOAD_PATH.unshift File.expand_path("lib", __dir__)
require "paper_trail/compatibility"
require "paper_trail/version_number"
Gem::Specification.new do |s|
s.name = "paper_trail"
s.version = PaperTrail::VERSION::STRING
s.platform = Gem::Platform::RUBY
s.summary = "Track changes to your models."
s.description = <<-EOS
Track changes to your models, for auditing or versioning. See how a model looked
at any stage in its lifecycle, revert it to any version, or restore it after it
has been destroyed.
EOS
s.homepage = "https://github.com/paper-trail-gem/paper_trail"
s.authors = ["Andy Stewart", "Ben Atkins", "Jared Beck"]
s.email = "jared@jaredbeck.com"
s.license = "MIT"
# > Files included in this gem. .. Only add files you can require to this
# > list, not directories, etc.
# > https://guides.rubygems.org/specification-reference/#files
#
# > Avoid using `git ls-files` to produce lists of files. Downstreams (OS
# > packagers) often need to build your package in an environment that does
# > not have git (on purpose).
# > https://packaging.rubystyle.guide/#using-git-in-gemspec
#
# By convention, the `.gemspec` is omitted. Tests and related files (like
# `Gemfile`) are omitted. Documentation is omitted because it would double
# gem size. See discussion:
# https://github.com/paper-trail-gem/paper_trail/pull/1279#pullrequestreview-558840513
s.files = Dir["lib/**/*", "LICENSE"].reject { |f| File.directory?(f) }
s.executables = []
s.require_paths = ["lib"]
s.required_rubygems_version = ">= 1.3.6"
# PT supports ruby versions until they reach End-of-Life, historically
# about 3 years, per https://www.ruby-lang.org/en/downloads/branches/
#
# See "Lowest supported ruby version" in CONTRIBUTING.md
s.required_ruby_version = ">= 2.7.0"
# We no longer specify a maximum activerecord version.
# See discussion in paper_trail/compatibility.rb
s.add_dependency "activerecord", ::PaperTrail::Compatibility::ACTIVERECORD_GTE
s.add_dependency "request_store", "~> 1.1"
s.add_development_dependency "appraisal", "~> 2.4.1"
s.add_development_dependency "byebug", "~> 11.1"
s.add_development_dependency "ffaker", "~> 2.20"
s.add_development_dependency "generator_spec", "~> 0.9.4"
s.add_development_dependency "memory_profiler", "~> 1.0.0"
# For `spec/dummy_app`. Technically, we only need `actionpack` (as of 2020).
# However, that might change in the future, and the advantages of specifying a
# subset (e.g. actionpack only) are unclear.
s.add_development_dependency "rails", ::PaperTrail::Compatibility::ACTIVERECORD_GTE
s.add_development_dependency "rake", "~> 13.0"
s.add_development_dependency "rspec-rails", "~> 5.0.2"
s.add_development_dependency "rubocop", "~> 1.22.2"
s.add_development_dependency "rubocop-packaging", "~> 0.5.1"
s.add_development_dependency "rubocop-performance", "~> 1.11.5"
s.add_development_dependency "rubocop-rails", "~> 2.12.4"
s.add_development_dependency "rubocop-rake", "~> 0.6.0"
s.add_development_dependency "rubocop-rspec", "~> 2.5.0"
s.add_development_dependency "simplecov", "~> 0.21.2"
# ## Database Adapters
#
# The dependencies here must match the `gem` call at the top of their
# adapters, eg. `active_record/connection_adapters/mysql2_adapter.rb`,
# assuming said call is consistent for all versions of rails we test against
# (see `Appraisals`).
#
# Currently, all versions of rails we test against are consistent. In the past,
# when we tested against rails 4.2, we had to specify database adapters in
# `Appraisals`.
s.add_development_dependency "mysql2", "~> 0.5.3"
s.add_development_dependency "pg", "~> 1.2"
s.add_development_dependency "sqlite3", "~> 1.4"
end