Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@ jobs:
strategy:
matrix:
ruby:
- '3.1.6'
- '3.2.7'
- '3.3.7'
- '3.4.2'
- '3.3.10'
- '3.4.8'
- '4.0.1'
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

steps:
- uses: actions/checkout@v4
- name: Set up Ruby
Expand Down
2 changes: 1 addition & 1 deletion .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require:
plugins:
- rubocop-rake
- rubocop-rspec

Expand Down
8 changes: 4 additions & 4 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ gem 'appraisal'
gem 'irb'
gem 'mail'
gem 'net-smtp'
gem 'rake', '~> 13.0'
gem 'rdoc', '~> 6.13.0'
gem 'rspec', '~> 3.0'
gem 'rake', '~> 13.3'
gem 'rdoc', '~> 7.1.0'
gem 'rspec', '~> 3'
gem 'rspec-its'
gem 'rubocop', '~> 1.21'
gem 'rubocop', '~> 1.82'
Comment on lines +11 to +15
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify latest versions of the gems mentioned in the review

echo "=== Checking gem versions on rubygems.org ==="
for gem in rake rdoc rspec rubocop; do
  echo ""
  echo "=== $gem ==="
  curl -s "https://rubygems.org/api/v1/gems/$gem.json" | jq -r "{name: .name, current_version: .version, homepage: .homepage_uri}" 2>/dev/null || echo "Error fetching $gem"
done

echo ""
echo "=== Checking if rdoc 7.1.0 exists ==="
curl -s "https://rubygems.org/api/v1/versions/rdoc.json" | jq '.[] | select(.number=="7.1.0")' 2>/dev/null

Repository: mailtrap/mailtrap-ruby

Length of output: 1637


🌐 Web query:

rdoc 7.0 breaking changes major version upgrade migration

💡 Result:

RDoc 7.0 (released Dec 18, 2025): notable breaking / migration-impacting changes

  1. Default HTML theme changed to “Aliki” (from Darkfish)
    If you (or your users) depend on Darkfish’s HTML structure/CSS for screenshots, scrapers, custom styling, or documentation-site embedding, expect differences. The theme switch is called out in the 7.0.0 release notes. [1]
    Ruby core docs note that Aliki is the default for RDoc v7.0+, and you can switch back to Darkfish via .rdoc_options. [3][4]

  2. Dependency constraint change: psych >= 4.0.0
    Projects pinned to older psych (or environments where upgrading psych is difficult) may hit resolution issues. RDoc 7.0.0 declares psych >= 4.0.0. [2]

  3. Ruby compatibility floor: >= 2.6.0
    If you still generate docs on Ruby 2.5 or older in CI/release pipelines, you must upgrade that job/runtime. [2]

Practical migration steps

  • If you want the old look (Darkfish), pin the generator/theme in .rdoc_options:
    Use:

    • generator_name: darkfish [4]
      (Ruby’s announcement also mentions switching back to Darkfish via .rdoc_options.) [3]
  • If you stay on Aliki, update any doc-site customizations/tests:
    Re-record snapshots, update CSS hooks, and verify navigation/search behavior (Aliki includes a rebuilt search UX). [1][3]

  • Ensure your build environment resolves psych >= 4:
    If you vendor/lock psych, update the lock and CI images accordingly. [2]

Sources: RDoc v7.0.0 release notes (GitHub) [1], RDoc 7.0.0 gem metadata (RubyGems) [2], Ruby news post on Aliki/RDoc 7.0+ [3], Aliki details + how to switch back/customize in .rdoc_options [4].


🌐 Web query:

rubocop 1.72 plugins key support introduced

💡 Result:

RuboCop added support for the .rubocop.yml plugins: key (the new “plugin system” for loading extension cop gems via the official lint_roller API) starting in RuboCop 1.72.0 (released 2025‑02‑14). The docs explicitly note: “The plugin system was introduced in RuboCop 1.72,” and recommend migrating extension loading from require: to plugins:. [1], [2], [3]


Call out rdoc 7.x breaking changes; versions are valid.

All versions exist and constraints are reasonable. However, the rdoc ~> 7.1.0 major version bump introduces notable breaking changes that merit attention:

  • Default HTML theme changed from Darkfish to Aliki — if your documentation pipeline or tests depend on Darkfish's HTML structure/CSS, you'll need to either update customizations or revert to Darkfish via .rdoc_options (generator_name: darkfish)
  • psych >= 4.0.0 is now required — ensure your build environment and lock file support psych 4.x
  • Ruby >= 2.6.0 is the new floor — if you generate docs on older Ruby versions in CI, upgrade those jobs

The rubocop ~> 1.82 constraint correctly supports the plugins: key (introduced in RuboCop 1.72+).

🤖 Prompt for AI Agents
In `@Gemfile` around lines 11 - 15, The Gemfile currently pins rdoc with "rdoc ~>
7.1.0", which brings breaking changes (Aliki theme, psych >= 4.0, Ruby >= 2.6);
either revert to a 6.x rdoc pin or explicitly opt back into Darkfish by adding a
.rdoc_options entry (generator_name: darkfish), update your dependency
constraints to require psych >= 4.0 in the lockfile/Gemfile, and ensure CI/build
images specify Ruby >= 2.6.0 so the rdoc 7.x upgrade won’t break docs/tests that
rely on Darkfish or older Ruby/psych versions.

gem 'rubocop-rake', require: false
gem 'rubocop-rspec', require: false
gem 'vcr'
Expand Down
112 changes: 60 additions & 52 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,112 +7,120 @@ PATH
GEM
remote: https://rubygems.org/
specs:
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
addressable (2.8.8)
public_suffix (>= 2.0.2, < 8.0)
appraisal (2.5.0)
bundler
rake
thor (>= 0.14.0)
ast (2.4.3)
base64 (0.3.0)
bigdecimal (3.1.8)
crack (1.0.0)
bigdecimal (4.0.1)
crack (1.0.1)
bigdecimal
rexml
date (3.4.1)
diff-lcs (1.5.1)
hashdiff (1.1.0)
io-console (0.8.0)
irb (1.15.2)
date (3.5.1)
diff-lcs (1.6.2)
erb (6.0.1)
hashdiff (1.2.1)
io-console (0.8.2)
irb (1.16.0)
pp (>= 0.6.0)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
json (2.12.2)
json (2.18.0)
language_server-protocol (3.17.0.5)
lint_roller (1.1.0)
mail (2.8.1)
logger (1.7.0)
mail (2.9.0)
logger
mini_mime (>= 0.1.1)
net-imap
net-pop
net-smtp
mini_mime (1.1.5)
net-imap (0.5.7)
net-imap (0.6.2)
date
net-protocol
net-pop (0.1.2)
net-protocol
net-protocol (0.2.2)
timeout
net-smtp (0.5.0)
net-smtp (0.5.1)
net-protocol
parallel (1.27.0)
parser (3.3.8.0)
parser (3.3.10.1)
ast (~> 2.4.1)
racc
pp (0.6.2)
pp (0.6.3)
prettyprint
prettyprint (0.2.0)
prism (1.4.0)
psych (5.2.6)
prism (1.9.0)
psych (5.3.1)
date
stringio
public_suffix (5.1.1)
public_suffix (7.0.2)
racc (1.8.1)
rainbow (3.1.1)
rake (13.2.1)
rdoc (6.13.1)
rake (13.3.1)
rdoc (7.1.0)
erb
psych (>= 4.0.0)
regexp_parser (2.10.0)
reline (0.6.1)
tsort
regexp_parser (2.11.3)
reline (0.6.3)
io-console (~> 0.5)
rexml (3.4.2)
rspec (3.13.0)
rexml (3.4.4)
rspec (3.13.2)
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
rspec-core (3.13.0)
rspec-core (3.13.6)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.1)
rspec-expectations (3.13.5)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-its (1.3.0)
rspec-core (>= 3.0.0)
rspec-expectations (>= 3.0.0)
rspec-mocks (3.13.1)
rspec-its (2.0.0)
rspec-core (>= 3.13.0)
rspec-expectations (>= 3.13.0)
rspec-mocks (3.13.7)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-support (3.13.1)
rubocop (1.78.0)
rspec-support (3.13.6)
rubocop (1.84.0)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.45.1, < 2.0)
rubocop-ast (>= 1.49.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.45.1)
rubocop-ast (1.49.0)
parser (>= 3.3.7.2)
prism (~> 1.4)
rubocop-rake (0.6.0)
rubocop (~> 1.0)
rubocop-rspec (3.0.2)
rubocop (~> 1.61)
prism (~> 1.7)
rubocop-rake (0.7.1)
lint_roller (~> 1.1)
rubocop (>= 1.72.1)
rubocop-rspec (3.9.0)
lint_roller (~> 1.1)
rubocop (~> 1.81)
ruby-progressbar (1.13.0)
stringio (3.1.7)
thor (1.4.0)
timeout (0.4.3)
unicode-display_width (3.1.4)
unicode-emoji (~> 4.0, >= 4.0.4)
unicode-emoji (4.0.4)
vcr (6.2.0)
webmock (3.23.1)
stringio (3.2.0)
thor (1.5.0)
timeout (0.6.0)
tsort (0.2.0)
unicode-display_width (3.2.0)
unicode-emoji (~> 4.1)
unicode-emoji (4.2.0)
vcr (6.4.0)
webmock (3.26.1)
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
yard (0.9.37)
yard (0.9.38)

PLATFORMS
ruby
Expand All @@ -123,11 +131,11 @@ DEPENDENCIES
mail
mailtrap!
net-smtp
rake (~> 13.0)
rdoc (~> 6.13.0)
rspec (~> 3.0)
rake (~> 13.3)
rdoc (~> 7.1.0)
rspec (~> 3)
rspec-its
rubocop (~> 1.21)
rubocop (~> 1.82)
rubocop-rake
rubocop-rspec
vcr
Expand Down