Skip to content

chore: Release version 3.6.0 — restore Ruby 2.6 support#17

Merged
wteuber merged 2 commits into
masterfrom
release/3.6.0
Jun 24, 2026
Merged

chore: Release version 3.6.0 — restore Ruby 2.6 support#17
wteuber merged 2 commits into
masterfrom
release/3.6.0

Conversation

@wteuber

@wteuber wteuber commented Jun 24, 2026

Copy link
Copy Markdown
Owner

Summary

Releases v3.6.0, which restores support for Ruby 2.6 (the stock Ruby shipped with macOS) so git-status-tree runs out of the box without installing a newer Ruby. The runtime remains dependency-free (standard library only). This also overhauls the test/CI setup to keep the 2.6 floor honest.

Compatibility

  • Lower gemspec required_ruby_version from >= 3.4 to >= 2.6 (additive — not breaking)
  • Rewrite Ruby 3.0+ endless method definitions in lib/node.rb as classic def/end (the only hard 2.6 syntax blocker)
  • .rubocop.yml TargetRubyVersion2.6 (flags any syntax newer than the floor); .ruby-version4.0.4

Test & coverage (fully stdlib, no gem install)

  • Migrate the suite from test-unit to minitest (bundled with every Ruby 2.6+)
  • New test/coverage.rb gate using the stdlib coverage extension — enforces 100% library coverage with zero gem dependencies
  • Drop SimpleCov and test-unit dev dependencies

CI

  • New .github/workflows/ci.yml: test matrix Ruby 2.6 / 3.4 / 4.0 running ruby test/coverage.rb, plus a separate RuboCop lint job
  • actions/checkout@v7

Docs

  • README Compatibility (with rationale for the 2.6 floor), Development section, CI badge, and gem install/push references updated to 3.6.0

Verification

Ruby ruby test/coverage.rb Coverage
2.6.10 174 runs, 0 failures, 0 errors 100% (396/396)
3.4.9 174 runs, 0 failures, 0 errors 100%
4.0.4 174 runs, 0 failures, 0 errors 100%

RuboCop (target 2.6): 29 files, no offenses. gem build produces git-status-tree-3.6.0.gem cleanly.

Release

Version bumped to 3.6.0; CHANGELOG updated. Gem not pushed — maintainer will gem build + gem push git-status-tree-3.6.0.gem after merge.

wteuber added 2 commits June 24, 2026 16:34
- Restore Ruby 2.6 support (stock macOS system Ruby): lower gemspec floor to >= 2.6
- Rewrite Ruby 3.0+ endless methods in lib/node.rb as classic def/end
- Migrate test suite from test-unit to minitest (bundled with every Ruby 2.6+)
- Add stdlib-only coverage gate (test/coverage.rb) enforcing 100% library coverage
- CI: matrix Ruby 2.6/3.4/4.0 + RuboCop lint job; bump actions/checkout to v7
- Lower .rubocop.yml TargetRubyVersion to 2.6; set .ruby-version to 4.0.4
- Drop SimpleCov and test-unit dev dependencies
- Update CHANGELOG, README compatibility/development notes, and gem install refs
- Bump version to 3.6.0
- Ruby 2.6 cannot install a modern Bundler; the coverage harness needs no gems,
  so set bundler: none on the test job (fixes the 2.6 setup-ruby failure)
- Pin CI RuboCop to the Gemfile.lock version so new upstream cops don't break the
  lint job
@wteuber wteuber merged commit df0d0b0 into master Jun 24, 2026
8 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