-
Notifications
You must be signed in to change notification settings - Fork 97
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
Berkshelf Integration #96
Comments
@hanskreuger do you have any further information on the conflicting dependencies? I'm pretty hopeful any issues can be ironed out, there isn't too much in spork that's dependent on specific gem versions. |
@jonlives in this case it was json - the issue here isn't within spork proper, but rather the fact that we're trying to pull berkshelf into a knife plugin. |
On any knife command (not just spork) the subcommand loader will load spork which will load up Berkshelf, which will drag all its deps into the process, which is totally awful:
There is a bug there somewhere, but the entire stacktrace popping up when I'm not even doing a knife-spork command is a much larger bug. One thing you could do would be to lazily load berkshelf in the deps method of the knife subcommand rather than doing that up front. The other thing to do would just be to not 'require' berkshelf at all and simply shell out to doing berks command. I don't quite know what you're doing with berkshelf right now, but if its just a 'berks upload' then if you just fork and run berks upload you avoid all the gem dep hell pain by spawning a new Ruby VM. Which is both horrific and yet neatly punts all kinds of gem dep hell into to the 'no fucks given' bucket. If berks wants to load up a completely different version of chef to get its work done from the one that is running knife-spork it could do something that insane. If you can't get what you need off the berks cli then I'd actually suggest adding some cli options to berks so that you could. That would be optimally lazy and would completely decouple the gem deps. |
Berkshelf and Knife both maintain different (and often conflicting) gem dependencies.
This isn't entirely surprising as Berkshelf is something of a knife replacement.
Given the above, I'm beginning to think that berkshelf integration in Knife-Spork is a unicorn.
The text was updated successfully, but these errors were encountered: