Skip to content

chore: Ruby 3.3+ floor, modern GHA, gemspec hygiene - #755

Merged
ronaldtse merged 7 commits into
mainfrom
chore/best-practices-2026
Jul 29, 2026
Merged

chore: Ruby 3.3+ floor, modern GHA, gemspec hygiene#755
ronaldtse merged 7 commits into
mainfrom
chore/best-practices-2026

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

Summary

  • Raise required_ruby_version to >= 3.3.0; CI matrix 3.3 + 3.4 (drops 2.6/2.7/3.0/3.1/3.2)
  • Replace git ls-files packaging with explicit Dir[] globs (drops bin/, Gemfile, Rakefile, .github/ from gem; 67 files vs. many more before)
  • Add gemspec metadata: changelog_uri, bug_tracker_uri, rubygems_mfa_required
  • Add #!/usr/bin/env ruby shebang to exe/interscript and chmod +x (resolves "missing #! line" warning; installed binary is now executable)
  • Gemfile: rake ~> 13.0, rspec ~> 3.13, drop obsolete RUBY_VERSION < 2.7 guard
  • Workflows: actions/checkout@v7, actions/setup-node@v7, ruby/setup-ruby@v1 with bundler-cache: true; Node 22 in release
  • assets.yml: pin thedoctor0/zip-release@v0.7.6 (was @master), svenstaro/upload-release-action@v2 (was 2.2.1), Ruby 3.3 (was 3.0)
  • rake.yml: drop continue-on-error: true so real failures block merges
  • Add Dependabot (actions + bundler, weekly)

Test plan

  • gem build interscript.gemspec succeeds with no warnings; 67 files; required_ruby_version >= 3.3.0
  • gem release --pretend reports release interscript 2.4.5cleanup
  • Gem excludes bin/, Gemfile, Rakefile, .github/
  • CI green on Ruby 3.3 and 3.4
  • First tag-triggered release publishes to RubyGems with valid executable

Notes

  • Workflow still uses actions/checkout with repository: interscript/interscript + ruby bootstrap.rb (monorepo pattern). Root CI for the monorepo lands in a separate PR.
  • TS runtime port for interscript-js (Phase C2) is tracked separately.

Comment thread .github/workflows/rake.yml Fixed
- Add 'standard' gem + .standard.yml (lib/ only; spec/bin/exe ignored)
- Auto-fix 953 -> 23 remaining violations (mostly regexp_converter.rb
  and visualize/*.rb; need manual review)
- Add StandardRB job to rake.yml CI
Comment on lines +11 to +48
name: Test on Ruby ${{ matrix.ruby }} / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
fail-fast: false
matrix:
ruby: [ 3.3, 3.2, 3.1, "3.0", 2.7, 2.6 ]
os: [ ubuntu-latest, windows-latest, macos-latest ]
ruby: ["3.3", "3.4"]
os: [ubuntu-latest, windows-latest, macos-latest]
env:
BUNDLE_WITHOUT: "secryst"
SKIP_JS: "1"

steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Checkout monorepo
uses: actions/checkout@v7
with:
repository: interscript/interscript

- name: Run bootstrap script
- name: Bootstrap packages
run: ruby bootstrap.rb

- name: Use Ruby
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
working-directory: ruby

- name: Run RSpecs
working-directory: ./ruby
- name: Install Python helper and gems
working-directory: ruby
run: |
pip install regex
bundle install --with=jsexec
bundle exec rspec

- name: RSpec
working-directory: ruby
run: bundle exec rspec

standard:
Comment on lines +49 to +57
name: StandardRB
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- run: bundle exec standardrb
@ronaldtse
ronaldtse merged commit 3ee44b3 into main Jul 29, 2026
5 of 11 checks passed
@ronaldtse
ronaldtse deleted the chore/best-practices-2026 branch July 29, 2026 05:03
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.

2 participants