Shopify/packwerk

[Bug Report] Current version of sorbet-static doesn't support MacOS Monterey

bravehager opened this issue · 1 comments

Description

Trying bundle install on a fresh clone of the Packwerk repository on MacOS Monterey yields the following error:

$ bundle install
Unable to find a spec satisfying sorbet-static (= 0.5.6360) in the set. Perhaps the lockfile is corrupted? Found
sorbet-static (0.5.6360-x86_64-linux), sorbet-static (0.5.6360-x86_64-linux), sorbet-static
(0.5.6360-universal-darwin-20), sorbet-static (0.5.6360-universal-darwin-20), sorbet-static
(0.5.6360-universal-darwin-19), sorbet-static (0.5.6360-universal-darwin-19), sorbet-static
(0.5.6360-universal-darwin-18), sorbet-static (0.5.6360-universal-darwin-18), sorbet-static
(0.5.6360-universal-darwin-17), sorbet-static (0.5.6360-universal-darwin-17), sorbet-static
(0.5.6360-universal-darwin-16), sorbet-static (0.5.6360-universal-darwin-16), sorbet-static
(0.5.6360-universal-darwin-15), sorbet-static (0.5.6360-universal-darwin-15), sorbet-static
(0.5.6360-universal-darwin-14), sorbet-static (0.5.6360-universal-darwin-14) that did not match the current
platform.

It looks like sorbet is locked at v0.5.6360, which doesn't support MacOS Monterey.

To Reproduce

  1. Clone repository from a computer running MacOS Monterey.
  2. Run bundle install.
  3. Confirm that Bundler can't satisfy sorbet-static.

Expected Behaviour

This is just affecting anyone trying to contribute/fork Packwerk on MacOS Monterey, but I would still hope that Sorbet can be bumped to a version that supports newer versions of MacOS.

Screenshots

N/A

Version Information

  • Packwerk: 1.4 (main branch)
  • Ruby 3.0.0
  • Platform: x86_64-darwin-21

Additional Context

Bumping sorbet via bundle update sorbet should do the trick, but it looks like some RBI files generated by the current version of Tapioca are still using the deprecated T.enum type. Running bin/srb tc with Sorbet upgraded to v0.5.9396 yields the following error:

$ bin/srb tc
sorbet/rbi/gems/tapioca@0.4.19.rbi:565: T.enum has been renamed to T.deprecated_enum https://srb.help/5004
     565 |    sig { params(constant: T.untyped, type_variable_type: T.enum([:type_member, :type_template]), type_variable: T::Types::TypeVariable, fixed: T.untyped, lower: T.untyped, upper: T.untyped).void }
                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Autocorrect: Use `-a` to autocorrect
    sorbet/rbi/gems/tapioca@0.4.19.rbi:565: Replace with T.deprecated_enum
     565 |    sig { params(constant: T.untyped, type_variable_type: T.enum([:type_member, :type_template]), type_variable: T::Types::TypeVariable, fixed: T.untyped, lower: T.untyped, upper: T.untyped).void }
                                                                    ^^^^^^
Errors: 1

I tried upgrading Tapioca as well using bundle update tapioca, but I also had to manually edit sorbet/rbi/todo.rbi to fix an issue with Tapioca and autoloading.

Happy to submit a PR if the maintainers are interested in supporting development on newer versions of MacOS.

Happy to submit a PR if the maintainers are interested

💯