Skip to content

Comments

Ruby 3.x upgrade and version bump to 2.0.0#8

Merged
JPDuchesne merged 3 commits intomasterfrom
jpd/ruby3-upgrade
Feb 21, 2026
Merged

Ruby 3.x upgrade and version bump to 2.0.0#8
JPDuchesne merged 3 commits intomasterfrom
jpd/ruby3-upgrade

Conversation

@JPDuchesne
Copy link
Contributor

@JPDuchesne JPDuchesne commented Feb 21, 2026

Summary

  • Breaking: Drop Ruby 2.x support, require Ruby >= 3.2 (semver major bump to 2.0.0)
  • Update parser (>= 3.0) and unparser (>= 0.6) for Ruby 3.x compatibility
  • Fix begin node unwrapping in Transformation#process_node to avoid unnecessary parenthesization by unparser 0.8.x
  • Replace pry-byebug with pry (Ruby 3 compatible), coveralls with simplecov

CI/CD

  • Replace Travis CI with GitHub Actions (ci.yml: tests on Ruby 3.2–3.3, release.yml: automated gem publish on tag push via Trusted Publishing)
  • Add Codecov integration with SimpleCov JSON formatter
  • Release workflow validates that git tag matches version.rb before publishing

Tests

  • Add edge-case tests for begin node unwrapping logic (no annotations present, mixed transformable/non-transformable siblings, constant assignment support)
  • Update test expectations to match unparser 0.8.x output formatting

Docs

  • Update README badges (Travis/Coveralls → GitHub Actions/Codecov)
  • Document release process (GitHub UI and CLI flows)

Test plan

  • All 30 tests pass locally on Ruby 3.3
  • CI passes on Ruby 3.2, 3.3

Setup required after merge

  1. Codecov: Sign in at codecov.io with GitHub, add repo, add upload token as CODECOV_TOKEN secret
  2. Trusted Publishing: Configure gem on rubygems.org as a trusted publisher

JPDuchesne and others added 3 commits February 21, 2026 10:05
- Bump required_ruby_version from ~> 2.5 to >= 3.0
- Upgrade parser dependency from ~> 2.5 to >= 3.0
- Upgrade unparser dependency from ~> 0.4 to >= 0.6
- Replace coveralls with simplecov (coveralls is unmaintained)
- Replace pry-byebug with pry >= 0.14 (byebug unsupported on Ruby 3)
- Remove Travis CI version logic from gemspec
- Fix File.exists? -> File.exist? (removed in Ruby 3.2)
- Fix begin-node unwrapping when transform! annotations are removed
  to prevent unnecessary parenthesization with unparser 0.8+
- Update test expectations for unparser 0.8 output formatting

Co-authored-by: Cursor <cursoragent@cursor.com>
- Require Ruby >= 3.0, update parser (>= 3.0) and unparser (>= 0.6)
- Replace Travis CI with GitHub Actions (ci.yml + release.yml)
- Replace Coveralls with SimpleCov + Codecov
- Replace pry-byebug with pry (Ruby 3 compatible)
- Add tag-version validation in release workflow
- Add tests for begin node unwrapping edge cases and casgn support
- Update README with new badges and release process documentation

Co-authored-by: Cursor <cursoragent@cursor.com>
Ruby 3.0 is EOL, and unparser 0.8.x + Bundler 2.5.x have compatibility
issues with Ruby 3.0/3.1's RubyGems.

Co-authored-by: Cursor <cursoragent@cursor.com>
@JPDuchesne JPDuchesne merged commit 2f177ec into master Feb 21, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant