steep icon indicating copy to clipboard operation
steep copied to clipboard

steep appears to be crashing when it can't find signatures for a gem.

Open mckaysalisbury opened this issue 1 year ago • 0 comments

  1. I've got a big project. I'm trying to gradually convert to start using RBS and steep.
  2. We wrote a new library. And we got steep checking fully working and validating in that new library.
  3. We have integrated that library successfully into the big project.
  4. I wanted to turn on steep checking into one file in the big project (so I have only one check entry in my big project's Steepfile, which references an individual file.
  5. I ran rbs prototype rb file.rb > sig/file.rb on that one file. (This is a simplification)
  6. Steep gave me a bunch of errors about missing types, so I ran rbs prototype rb to create some other signatures from other types referenced by my sig, (but I'm still not steep checking on those .rb files)
  7. Next I ran into problems from references in things like rails, so I decided to run rbs collection install to get those signatures, and I got a .gem_rbs_collection folder with a bunch of stuff in it now.
  8. Now the problem I'm getting is when I run steep check, steep crashes saying Cannot find type definitions for library (and then the name of a 3rd party library my project is using, but not in this particular file) RBS::EnvironmentLoader::UnknownLibraryError.
    • And when I say "crashes" I mean that steep (also) reports a Unexpected worker process exit (RuntimeError)

What's happening here? It looks to me like it's not failing a type check, it looks like it's not able to load the signatures for type checking? Is it not possible to steep check a single file unless the whole project's type chain is filled out? Is there a way to not care about a specific library? What are my options?

mckaysalisbury avatar May 15 '24 18:05 mckaysalisbury