Skip to content

feat: auto-discover new Ruby minor series in autobump#19

Merged
jdx merged 3 commits into
mainfrom
autobump-dynamic-versions
Mar 25, 2026
Merged

feat: auto-discover new Ruby minor series in autobump#19
jdx merged 3 commits into
mainfrom
autobump-dynamic-versions

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented Mar 25, 2026

Summary

  • Autobump workflow now dynamically discovers minor series from ruby/ruby releases instead of a hardcoded 3.2 3.3 3.4 list
  • New minor versions (4.1, 5.0, etc.) will be picked up automatically without workflow changes
  • Fixed tag matching to handle both old underscore format (v3_4_2) and new dot format (v4.0.2)
  • Abstract class selection falls back to base JdxRuby when no version-specific class exists
  • Adds Ruby 4.0.2 formula

Supersedes #18 — thanks @chadlwilson for identifying the issue!

Co-authored-by: Chad Wilson 29788154+chadlwilson@users.noreply.github.com

Test plan

  • Trigger autobump workflow manually via workflow_dispatch and verify it discovers 3.2, 3.3, 3.4, 4.0 series
  • Verify it skips versions that already have formulae
  • Verify prerelease detection correctly handles dot-format tags

🤖 Generated with Claude Code


Note

Medium Risk
Moderate risk because it changes the automation that generates and commits new Homebrew formulae; bugs in tag parsing/series discovery could create incorrect or missing formula updates.

Overview
Updates the autobump.yml workflow to auto-discover supported Ruby minor series from ruby/ruby releases (instead of a hardcoded list) and to match both underscore and dot tag formats when selecting the latest stable release.

The workflow now falls back to the base Abstract/jdx-ruby class when a version-specific abstract (Abstract/jdx-ruby-XX.rb) is missing, and prerelease detection similarly recognizes stable dot-format tags. Adds a new formula for jdx-ruby@4.0.2.

Written by Cursor Bugbot for commit 07cec48. This will update automatically on new commits. Configure here.

Instead of a hardcoded list of minor versions (3.2, 3.3, 3.4), the
autobump workflow now dynamically discovers all minor series from
ruby/ruby releases. This means 4.1, 5.0, etc. will be picked up
automatically without workflow changes.

Also adds the Ruby 4.0.2 formula and fixes tag matching to handle
both old underscore format (v3_4_2) and new dot format (v4.0.2).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the Ruby autobump workflow by introducing dynamic discovery of new Ruby minor series, moving away from static version lists. This change ensures that future Ruby versions are automatically supported, improving maintainability and reducing manual updates. Additionally, it refines tag parsing for version identification and implements a robust fallback for abstract class selection, alongside the immediate inclusion of a Ruby 4.0.2 formula.

Highlights

  • Autobump Workflow: The autobump workflow now dynamically discovers Ruby minor series from ruby/ruby releases, replacing a hardcoded list.
  • Version Discovery: New minor versions (e.g., 4.1, 5.0) will be automatically picked up without requiring workflow changes.
  • Tag Matching: Improved tag matching to correctly handle both old underscore-formatted tags (e.g., v3_4_2) and new dot-formatted tags (e.g., v4.0.2).
  • Abstract Class Selection: Abstract class selection now includes a fallback mechanism to the base JdxRuby class when no version-specific class exists.
  • New Formula: Added a new Homebrew formula for Ruby 4.0.2.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/autobump.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a new Homebrew formula for jdx-ruby@4.0.2. However, the formula currently points to a non-existent Ruby 4.0.2 release, which will cause brew install to fail due to a 404 error and an undownloadable artifact. All formulae should reference valid, downloadable resources, and an alternative approach for testing autobump workflows is suggested if that was the intent.

Comment thread Formula/jdx-ruby@4.0.2.rb Outdated
Comment on lines +4 to +5
url "https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.2.tar.gz"
sha256 "51502b26b50b68df4963336ca41e368cde92c928faf91654de4c4c1791f82aac"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

critical

This formula points to a non-existent Ruby 4.0.2 release. The URL will result in a 404 error, and the SHA256 checksum is for an undownloadable file, making this formula unusable. This will cause brew install to fail. All formulae should point to valid, downloadable artifacts. If this is for testing the autobump workflow, please consider an alternative approach that avoids committing broken formulae, such as using a separate test directory or mock data.

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Comment thread .github/workflows/autobump.yml
jdx and others added 2 commits March 25, 2026 09:28
Fixes unescaped dots in grep -E patterns where the minor version
(e.g., 4.0) is interpolated — the dot could match any character.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jdx jdx merged commit b55d554 into main Mar 25, 2026
9 checks passed
@jdx jdx deleted the autobump-dynamic-versions branch March 25, 2026 14:44
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