Skip to content

Ruby 4.0.6-1 release - #22

Merged
N6REJ merged 4 commits into
mainfrom
4.0.6-1
Aug 10, 2026
Merged

Ruby 4.0.6-1 release#22
N6REJ merged 4 commits into
mainfrom
4.0.6-1

Conversation

@jwaisner

Copy link
Copy Markdown
Contributor

No description provided.

@jwaisner
jwaisner requested a review from N6REJ as a code owner August 10, 2026 03:42
@jwaisner jwaisner added the enhancement ✨ Improve program label Aug 10, 2026
@qodo-code-review

Copy link
Copy Markdown
Contributor

PR Summary by Qodo

Release Ruby 4.0.6-1 bundle metadata and RubyGems updater

✨ Enhancement ⚙️ Configuration changes 🕐 10-20 Minutes

Grey Divider

AI Description

• Add new Ruby 4.0.6-1 bundle configuration and RubyGems install assets.
• Bump bundle release version to 2026.8.9 for packaging/publishing.
• Register the 4.0.6-1 artifact URL in releases.properties.
Diagram

graph TD
  A(["Gradle releaseBuild"]) --> B["build.properties"]
  A --> C["releases.properties"] --> D["bin/ruby4.0.6-1/"]
  D --> E["bearsampp.conf"] --> H["Packaged module"]
  D --> F["rubygems/ installer"] --> G{{"GitHub Releases"}} --> H
  F --> H
  subgraph Legend
    direction LR
    _svc(["Build task"]) ~~~ _file["Config/file"] ~~~ _ext{{"External"}}
  end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Template version folders at build time
  • ➕ Avoids copying near-identical per-version directories (bearsampp.conf/install.bat) each release
  • ➕ Reduces risk of drift/inconsistencies between versions (e.g., URL casing, script flags)
  • ➖ Requires build.gradle changes and a templating step, increasing build complexity
  • ➖ Harder to inspect/version-control the exact per-release inputs without generated outputs
2. Single shared RubyGems installer config
  • ➕ Centralizes rubygems install.bat and rubygems.properties to one location
  • ➕ Makes RubyGems updates independent from adding new Ruby versions
  • ➖ May not work if different Ruby versions require different RubyGems constraints
  • ➖ Breaks the current convention where each version folder is self-contained

Recommendation: The current per-version folder approach matches existing releases and is low-risk for a release PR. Consider templating or shared RubyGems config later if release cadence makes duplication/error drift a recurring problem.

Files changed (5) +18 / -1

Other (5) +18 / -1
bearsampp.confAdd Bearsampp config for Ruby 4.0.6-1 +5/-0

Add Bearsampp config for Ruby 4.0.6-1

• Introduces a new per-version Bearsampp configuration defining rubyVersion and executable entrypoints. Keeps bundleRelease as a build-time substituted token.

bin/ruby4.0.6-1/bearsampp.conf

install.batAdd RubyGems offline install/update script +10/-0

Add RubyGems offline install/update script

• Adds a Windows batch script to install the downloaded rubygems-update.gem locally and then run a system update without documentation generation. Uses gem.cmd from the bundled Ruby bin directory and propagates error codes.

bin/ruby4.0.6-1/rubygems/install.bat

rubygems.propertiesPoint Ruby 4.0.6-1 to RubyGems update gem URL +1/-0

Point Ruby 4.0.6-1 to RubyGems update gem URL

• Adds the RubyGems download URL used by the build to fetch the rubygems-update gem (version 4.0.18) for this Ruby bundle.

bin/ruby4.0.6-1/rubygems/rubygems.properties

build.propertiesBump bundle release version to 2026.8.9 +1/-1

Bump bundle release version to 2026.8.9

• Updates the bundle.release value used as the module build/publish version for this release.

build.properties

releases.propertiesRegister Ruby 4.0.6-1 published artifact URL +1/-0

Register Ruby 4.0.6-1 published artifact URL

• Adds a new mapping for Ruby 4.0.6-1 pointing to the 2026.8.9 GitHub release archive URL so it can be resolved/listed by build tooling.

releases.properties

@qodo-code-review

qodo-code-review Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)

Grey Divider


Action required

1. Unreplaced release placeholder ⊘ Outdated 🐞 Bug ≡ Correctness
Description
bin/ruby4.0.6-1/bearsampp.conf sets bundleRelease to "@RELEASE_VERSION@", but the Gradle release
build copies configuration files into the packaged bundle without replacing that token. The produced
archive will contain a literal "@RELEASE_VERSION@" instead of the real release (2026.8.9), breaking
any consumer logic that reads bundleRelease for display/versioning/upgrade decisions.
Code

bin/ruby4.0.6-1/bearsampp.conf[5]

+bundleRelease = "@RELEASE_VERSION@"
Evidence
The new version’s bearsampp.conf introduces a literal @RELEASE_VERSION@ placeholder, while the
Gradle build’s config copy step does not apply any filtering/replacement, so the placeholder is
carried into the final prepared directory/archive; this also contradicts the concrete bundle.release
value set for this PR (2026.8.9).

bin/ruby4.0.6-1/bearsampp.conf[1-5]
build.gradle[739-752]
build.properties[1-4]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`bin/ruby4.0.6-1/bearsampp.conf` contains `bundleRelease = "@RELEASE_VERSION@"`, but the Gradle build copies `bearsampp.conf` into the output bundle without any token substitution. This causes released artifacts to ship with the placeholder instead of the actual `bundle.release` value.

### Issue Context
- `build.properties` defines the real release value (`bundle.release=2026.8.9`).
- `releaseBuild` copies config files from `bin/ruby<version>` into the prepared bundle using a plain `copy { ... }` block.

### Fix Focus Areas
- build.gradle[739-752]
- bin/ruby4.0.6-1/bearsampp.conf[1-5]
- build.properties[1-4]

### Expected fix
Implement token replacement when copying configuration files (preferred, fixes all versions), e.g. replace `@RELEASE_VERSION@` with `bundleRelease` during the copy step. Alternatively (less preferred), hardcode the actual release string in `bin/ruby4.0.6-1/bearsampp.conf` (but that requires manual updates every release).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. Unquoted pushd path ✓ Resolved 🐞 Bug ☼ Reliability
Description
bin/ruby4.0.6-1/rubygems/install.bat runs pushd %RUBYBINPATH% without quotes, so if RUBYBINPATH
contains spaces (common on Windows) the directory change fails and RUBYBINPATH is overwritten with
the wrong %CD%. This breaks subsequent gem.cmd invocations and can cause the Gradle RubyGems
installation step to fail.
Code

bin/ruby4.0.6-1/rubygems/install.bat[R2-4]

+set RUBYBINPATH=%~dp0..\bin
+pushd %RUBYBINPATH%
+set RUBYBINPATH=%CD%
Evidence
The new install.bat uses pushd %RUBYBINPATH% without quotes; the Gradle build runs this script as
an external process during RubyGems processing, so this quoting flaw can directly fail the release
build on common Windows paths.

bin/ruby4.0.6-1/rubygems/install.bat[1-10]
build.gradle[825-843]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`install.bat` uses unquoted path variables when calling `pushd`, which breaks when the path contains spaces (argument splitting in cmd.exe). This can cause the RubyGems installation to run from the wrong directory and fail.

### Issue Context
The Gradle build executes this script via `cmd /c` as part of `processRubyGems`, so a failure here aborts the release build.

### Fix Focus Areas
- bin/ruby4.0.6-1/rubygems/install.bat[1-10]
- build.gradle[825-843]

### Expected fix
Update the batch file to robust quoting and error checking, for example:
- `set "RUBYBINPATH=%~dp0..\bin"`
- `pushd "%RUBYBINPATH%" || exit /b %ERRORLEVEL%`
- Prefer `CALL` for the final `gem.cmd` invocation and propagate failures (`IF %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%`).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Tip of the day
💡 Did you know, you can reply 'qodo' on any finding to push back, ask questions, or dig deeper

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread bin/ruby4.0.6-1/bearsampp.conf Outdated
Comment thread bin/ruby4.0.6-1/rubygems/install.bat Outdated
N6REJ added 3 commits August 10, 2026 00:27
- Add quotes around RUBYBINPATH variable assignments to handle paths with spaces
- Add error handling for pushd command with || exit /b %ERRORLEVEL%
- Add CALL prefix and error checking for gem update --system command
- Apply changes consistently across all Ruby versions (4.0.2-1, 4.0.5-1, 4.0.6-1)
@N6REJ
N6REJ merged commit 010415d into main Aug 10, 2026
2 checks passed
@N6REJ
N6REJ deleted the 4.0.6-1 branch August 10, 2026 05:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement ✨ Improve program

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants