From e4b9f65b679530092399df1baacc8b1551811a6b Mon Sep 17 00:00:00 2001 From: William Storey Date: Mon, 15 Dec 2025 14:19:59 -0800 Subject: [PATCH 1/5] Refactor gemspec file selection to match other repos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- minfraud.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/minfraud.gemspec b/minfraud.gemspec index 1b6bd63..9620b28 100644 --- a/minfraud.gemspec +++ b/minfraud.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |spec| spec.required_ruby_version = '>= 3.2' - spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^.gitignore$|^Gemfile|^(?:\.github|dev-bin|spec)/}) } + spec.files = Dir['**/*'].difference(Dir['dev-bin/**/*', 'Gemfile*', 'spec/**/*']) spec.bindir = 'exe' spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ['lib'] From 6e8e1d364804ba1ba31d52290b19499914a537b3 Mon Sep 17 00:00:00 2001 From: William Storey Date: Mon, 15 Dec 2025 14:20:19 -0800 Subject: [PATCH 2/5] Remove unneeded files from the gem package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- CHANGELOG.md | 4 ++++ minfraud.gemspec | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 82dd714..9ca5535 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## v2.10.0 + +* Unnecessary files were removed from the published .gem. + ## v2.9.0 (2025-11-20) * Added the processor `:securepay` to `Minfraud::Components::Payment`. diff --git a/minfraud.gemspec b/minfraud.gemspec index 9620b28..4a9e0db 100644 --- a/minfraud.gemspec +++ b/minfraud.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |spec| spec.required_ruby_version = '>= 3.2' - spec.files = Dir['**/*'].difference(Dir['dev-bin/**/*', 'Gemfile*', 'spec/**/*']) + spec.files = Dir['**/*'].difference(Dir['bin/**/*', 'CLAUDE.md', 'CODE_OF_CONDUCT.md', 'dev-bin/**/*', 'Gemfile*', 'Rakefile', 'README.dev.md', 'spec/**/*', '*.gemspec']) spec.bindir = 'exe' spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ['lib'] From da690a5ba3b9fcf3104aaa81b3e85d7679ab6060 Mon Sep 17 00:00:00 2001 From: William Storey Date: Mon, 15 Dec 2025 14:31:23 -0800 Subject: [PATCH 3/5] Remove unnecessary bin files --- bin/console | 15 --------------- bin/setup | 8 -------- minfraud.gemspec | 2 +- 3 files changed, 1 insertion(+), 24 deletions(-) delete mode 100755 bin/console delete mode 100755 bin/setup diff --git a/bin/console b/bin/console deleted file mode 100755 index b8d9c8e..0000000 --- a/bin/console +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -require 'bundler/setup' -require 'minfraud' - -# You can add fixtures and/or initialization code here to make experimenting -# with your gem easier. You can also use a different console, if you like. - -# (If you use this, don't forget to add pry to your Gemfile!) -# require "pry" -# Pry.start - -require 'irb' -IRB.start diff --git a/bin/setup b/bin/setup deleted file mode 100755 index dce67d8..0000000 --- a/bin/setup +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -IFS=$'\n\t' -set -vx - -bundle install - -# Do any other automated setup that you need to do here diff --git a/minfraud.gemspec b/minfraud.gemspec index 4a9e0db..06e75d4 100644 --- a/minfraud.gemspec +++ b/minfraud.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |spec| spec.required_ruby_version = '>= 3.2' - spec.files = Dir['**/*'].difference(Dir['bin/**/*', 'CLAUDE.md', 'CODE_OF_CONDUCT.md', 'dev-bin/**/*', 'Gemfile*', 'Rakefile', 'README.dev.md', 'spec/**/*', '*.gemspec']) + spec.files = Dir['**/*'].difference(Dir['CLAUDE.md', 'CODE_OF_CONDUCT.md', 'dev-bin/**/*', 'Gemfile*', 'Rakefile', 'README.dev.md', 'spec/**/*', '*.gemspec']) spec.bindir = 'exe' spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ['lib'] From 8540e4f6ec78030c2ce3dcf80123e41823cd987c Mon Sep 17 00:00:00 2001 From: William Storey Date: Mon, 15 Dec 2025 14:33:57 -0800 Subject: [PATCH 4/5] Remove redundant gemspec settings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These settings were either unused (bindir/executables with no exe/ directory) or matched RubyGems defaults (require_paths). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- minfraud.gemspec | 3 --- 1 file changed, 3 deletions(-) diff --git a/minfraud.gemspec b/minfraud.gemspec index 06e75d4..ae1924c 100644 --- a/minfraud.gemspec +++ b/minfraud.gemspec @@ -18,9 +18,6 @@ Gem::Specification.new do |spec| spec.required_ruby_version = '>= 3.2' spec.files = Dir['**/*'].difference(Dir['CLAUDE.md', 'CODE_OF_CONDUCT.md', 'dev-bin/**/*', 'Gemfile*', 'Rakefile', 'README.dev.md', 'spec/**/*', '*.gemspec']) - spec.bindir = 'exe' - spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } - spec.require_paths = ['lib'] spec.add_dependency 'connection_pool', '~> 2.2' spec.add_dependency 'http', '>= 4.3', '< 6.0' From 349cef7027f79bb88480804fd3e000fed355dc0a Mon Sep 17 00:00:00 2001 From: William Storey Date: Mon, 15 Dec 2025 14:37:25 -0800 Subject: [PATCH 5/5] Add gemspec metadata for RubyGems.org links MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds bug_tracker_uri, changelog_uri, documentation_uri, homepage_uri, and source_code_uri metadata fields. Also reformats and reorganizes the gemspec for consistency. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- minfraud.gemspec | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/minfraud.gemspec b/minfraud.gemspec index ae1924c..372b3e0 100644 --- a/minfraud.gemspec +++ b/minfraud.gemspec @@ -11,13 +11,21 @@ Gem::Specification.new do |spec| spec.authors = ['kushnir.yb', 'William Storey'] spec.email = ['support@maxmind.com'] - spec.summary = 'Ruby API for the minFraud Score, Insights, Factors, and Report Transactions services' - spec.homepage = 'https://github.com/maxmind/minfraud-api-ruby' - spec.license = 'MIT' - + spec.summary = 'Ruby API for the minFraud Score, Insights, Factors, and Report Transactions services' + spec.homepage = 'https://github.com/maxmind/minfraud-api-ruby' + spec.license = 'MIT' + spec.metadata = { + 'bug_tracker_uri' => 'https://github.com/maxmind/minfraud-api-ruby/issues', + 'changelog_uri' => 'https://github.com/maxmind/minfraud-api-ruby/blob/main/CHANGELOG.md', + 'documentation_uri' => 'https://www.rubydoc.info/gems/minfraud', + 'homepage_uri' => 'https://github.com/maxmind/minfraud-api-ruby', + 'rubygems_mfa_required' => 'true', + 'source_code_uri' => 'https://github.com/maxmind/minfraud-api-ruby', + } spec.required_ruby_version = '>= 3.2' - spec.files = Dir['**/*'].difference(Dir['CLAUDE.md', 'CODE_OF_CONDUCT.md', 'dev-bin/**/*', 'Gemfile*', 'Rakefile', 'README.dev.md', 'spec/**/*', '*.gemspec']) + spec.files = Dir['**/*'].difference(Dir['CLAUDE.md', 'CODE_OF_CONDUCT.md', 'dev-bin/**/*', 'Gemfile*', 'Rakefile', 'README.dev.md', + 'spec/**/*', '*.gemspec']) spec.add_dependency 'connection_pool', '~> 2.2' spec.add_dependency 'http', '>= 4.3', '< 6.0' @@ -33,7 +41,4 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'rubocop-rspec' spec.add_development_dependency 'rubocop-thread_safety' spec.add_development_dependency 'webmock', '~> 3.14' - spec.metadata = { - 'rubygems_mfa_required' => 'true' - } end