Skip to content

Pin sorbet-static-and-runtime in sigs export temporary Gemfile#905

Merged
KaanOzkan merged 1 commit intomainfrom
jmignac/update-spoom-for-compatibility-with-sorbet
Apr 21, 2026
Merged

Pin sorbet-static-and-runtime in sigs export temporary Gemfile#905
KaanOzkan merged 1 commit intomainfrom
jmignac/update-spoom-for-compatibility-with-sorbet

Conversation

@jmignac
Copy link
Copy Markdown
Contributor

@jmignac jmignac commented Apr 21, 2026

Problem

spoom srb sigs export creates a temporary Gemfile that pins rbs and tapioca, but does not pin sorbet-static-and-runtime. This means bundler can resolve a newer version of sorbet-runtime in the temporary context.

Starting with sorbet-runtime >= 0.6.13149 (sorbet/sorbet#10177), the has_rest and has_keyrest methods were removed from T::Private::Methods::Signature. Tapioca still calls these methods in gem/listeners/sorbet_signatures.rb, causing:

undefined method `has_rest` for an instance of T::Private::Methods::Signature (NoMethodError)

Solution

Pin sorbet-static-and-runtime in the temporary Gemfile using BundlerHelper.gem_requirement_from_real_bundle, the same mechanism already used for rbs and tapioca. This ensures the temporary context uses the same sorbet version as the real bundle.

@jmignac jmignac self-assigned this Apr 21, 2026
@jmignac jmignac marked this pull request as ready for review April 21, 2026 20:55
@jmignac jmignac requested a review from a team as a code owner April 21, 2026 20:55
@KaanOzkan KaanOzkan merged commit 15114a0 into main Apr 21, 2026
13 checks passed
@KaanOzkan KaanOzkan deleted the jmignac/update-spoom-for-compatibility-with-sorbet branch April 21, 2026 21:04
@KaanOzkan
Copy link
Copy Markdown
Contributor

Tapioca PR to address the root cause: Shopify/tapioca#2603

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.

3 participants