Skip to content

feat(ruby): platform-native gem packaging + release-gem workflow - #100

Merged
suchintan merged 1 commit into
mainfrom
repo-sync/rustwright-cloud-98
Jul 18, 2026
Merged

feat(ruby): platform-native gem packaging + release-gem workflow#100
suchintan merged 1 commit into
mainfrom
repo-sync/rustwright-cloud-98

Conversation

@suchintan

Copy link
Copy Markdown
Member

@suchintan suchintan added the sync Automated cross-repository sync label Jul 18, 2026
@suchintan
suchintan merged commit bda7387 into main Jul 18, 2026
6 of 7 checks passed
@suchintan
suchintan deleted the repo-sync/rustwright-cloud-98 branch July 18, 2026 07:36
@claude

claude Bot commented Jul 18, 2026

Copy link
Copy Markdown

Summary

Straightforward Ruby packaging change (synced from rustwright-cloud#98): adds platform-native gem support (native lib bundled per-platform, resolution fallback chain, and a package.rb build script). Logic is small and reads correctly; main gaps are test coverage and a title/diff mismatch.

🔴 Critical Issues (0)

None found.

🟡 Suggestions (2)
  • Title says "release-gem workflow" but no workflow file is in this diff. The PR title is feat(ruby): platform-native gem packaging + release-gem workflow, but only ruby/.gitignore, ruby/README.md, ruby/lib/rustwright.rb, ruby/package.rb, and ruby/rustwright.gemspec changed — no .github/workflows/*.yml for gem release. If the workflow lives in a separate PR/repo, worth noting in the description so reviewers aren't left assuming CI automation shipped with this change.
  • No test coverage for the new platform-detection/resolution logic. bundled_platform, bundled_library_path, and the new fallback order in default_library_path (ruby/lib/rustwright.rb:99-153) have no corresponding cases in ruby/test/contract_test.rb. These are pure functions of RbConfig::CONFIG['host_os']/host_cpu and are easy to unit test by stubbing RbConfig::CONFIG — worth adding a few cases (each of the 4 supported platforms + an unsupported one falling through to source_library_path) to lock in the resolution order the README now documents.
📝 Minor / Style (2)
  • ruby/package.rb: the script trusts that the native library passed via ARGV[1] matches the extension expected for ARGV[0] (e.g. someone could pass a .so file while building the arm64-darwin gem, which expects .dylib). Not exploitable, but a quick extension check against PLATFORMS.fetch(platform) would catch an obvious operator mistake before it ships a broken gem.
  • ruby/lib/rustwright.rb:111: bundled_library_path is public while its helper bundled_platform is private — intentional if it's meant to be a public inspection point, but if it's only used internally by default_library_path, consider moving it under private for a smaller public surface.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

sync Automated cross-repository sync

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant