-
Notifications
You must be signed in to change notification settings - Fork 115
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sync: LoadError: cannot load such file -- RMagick #237
Comments
Ouch, thanks for this report and sorry that your first time experience failed in this way. I know why this is failing, but not sure about the fix. There is a place in Tapioca where we try to discover the mixed-in class methods modules of a module by including all modules into a temporary class and checking the diff between the ancestors. The failure is happening there for the I guess we could skip that operation if the module is a concern, since we know the exact class that concerns mixin anyway. I'll try to get this fixed this week. |
Hey, no worries 😄 It's free software!
🤯 Dynamic analysis of ruby is .. wow. ❤️ This is not an easy problem
Like a blocklist? Or maybe rescue the LoadError and print a warning? |
Sorry, I am super late in responding to this but I aim to merge a fix for this and release a version today or tomorrow.
😅 Yeah, it's been a ride. (Shameless plug: I did talk about some of our experiences doing that in my RubyKaigi 2020 talk in case you are interested)
I think we have special handling for |
We try to do something sneaky to detect modules that are mixed into a class through inclusion of another module, where we try to infer that information from the change in the ancestor list of a test class after including the said module to that class. However, that operation is risky since a `self.included` method on the target module could potentially run any Ruby code and it turns out some code in the wild even try to require optional gems when the concern is being included. Since this detection is best effort, it should be fine to catch all kinds of `Exception`s and bail out of the operation without side-effects. Fixes: #237
This was released as part of v0.4.16, thanks for reporting the error. |
Nice talk! The "Pitfalls" were scary. It's amazing some of the things people do with ruby. sigh I hope that, as type-checking becomes more popular, such antics will become less popular. |
Trying to install tapioca for the first time,
sync
was unable to compilecarrierwave
.My app does not use RMagick. RMagick is not a runtime dependency of CarrierWave.
The text was updated successfully, but these errors were encountered: