-
Notifications
You must be signed in to change notification settings - Fork 23
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
Please deprecate this whole project #32
Comments
@mislav Thanks for the feedback, and sorry for the trouble I've caused with the false positive issue reports! I think it's a good idea to warn people about the consequences, if they feel that they need the plugin to work with Bundler. As for the issues users have observed, some of them have been closed outright, and there's still some work to be done with regards to not executing the plugin hook twice (I've noticed that rbenv somehow wants to call it twice, and that sucks if the plugin is going to try to call Ruby). If you want to see the plugin deprecated, you may want to contact the Homebrew maintainers to remove the formula. I've notice that under Homebrew, rbenv seems to execute plugin hooks even more redundantly, leading to even worse performance. I am CC'ing @MikeMcQuaid on this to get his thoughts. I will meanwhile be updating the README to reflect the best practices espoused by @sstephenson and yourself. |
Wow, thanks for the positive response. I actually expected you to tell me to "go jump in a lake" and close this issue as wontfix :] Yes removing it from Homebrew might be a good idea, since people might install things from there automatically just because they are returned from |
@mislav Nah, I try to balance the will of other devs with the will of the people. The README change is going up soon. As for multiple hook execution, is there any way for rbenv to remember the hooks it has executed? Homebrew uses symlinks, and with each additional symlink, |
@mislav @MikeMcQuaid Another alternative yet is to print out a large post-install banner warning of the consequences and telling them to not annoy rbenv maintainers. This would encourage people to experiment at their own risk and report issues to me. |
@mislav Ok, I added a warning label to the README. |
@mislav @MikeMcQuaid I'm closing this issue, as there's not much more to do on my end. Let's continue the discussion here, though. |
Passing That said, I get that it's annoying to have a plugin causing problems with your project and causing false bug reports; we have to deal with similar silliness in Homebrew. I think the best solution for everyone would be for the two of you to work together to improve I'm totally up for further discussion on this though. |
I added the following warning to Homebrew:
|
My mistake; it only changes the contents of |
@MikeMcQuaid I think that warning message will go a long way. If you like the plugin, would you be so kind so to help me triage suspected redundant hook execution? All you need to do is to insert the following code.
What does the |
I'll get on this at some point, pretty snowed under at the moment. Bookmarked though. |
@carsomyr I'm afraid I'm just using binstubs fairly happily now instead. Sorry! |
@mislav @MikeMcQuaid Good news! The plugin no longer slows down shell initialization. Would it be possible to remove the warnings from the rbenv wiki and the Homebrew formula? |
Most of my gripes weren't about slow shell initialization, but about edge-case bugs and slow rehash in general, and people thinking they are bugs in rbenv. That's why we get so many bug reports on our project (some linked above). I find binstubs superior since they require significantly less code to solve the same problem, so I won't take down the heads-up on our wiki. |
@mislav Oh, ok. I'll consider this resolved then. |
- Explain why we don't need bin/ or bundle exec more precisely, mainly, we are specifically using rbenv-bundler. - The rbenv developers want to have rbenv-bundler deprecated, but their solution is a hideous mistake-ridden user interface (e.g., where the longer correct "bin/rails" is subtly different than the incorrect but easier-to-type and widely-documented "rails"). See carsomyr/rbenv-bundler#32 for the sorry tale. In any case, since there are some arguments, it's important do document *why* we don't need the prefixes. Another solution for us is rvm, but its install approach is to curl in a bash script to install random stuff, and it overrides the universe; both are significant negatives to its approach. It seems better to document a simple single on-ramp for new developers.
This plugin seems to be popular, presumably because people think they will need it if they use rbenv and Bundler. Yes, it can free users from having to type
bundle exec
orbin/*
to reach the executables for their project, but the tradeoff (never mentioned in the documentation) is that the rehash process is slow, and a detrimental effect to people's whole experience with rbenv in general.rbenv init
don't rehash by default rbenv/rbenv#304Edit: more issues popping up, documenting here for posterity
I want to be able to simply write
rake
orrspec
in my Ruby project just as much as the next person, withoutbundle exec
or the like, but I firmly believe this plugins approach is flawed which is evident by the number of problems people with it, poorrbenv rehash
performance and the sheer amount of code necessary for it to work.I've updated our wiki to warn against this plugin, and suggested that people simply use
bundle install --binstubs
and usebin/*
for their executables or add./bin
to their PATH. (Yes, this approach has potential security flaws which we're discussing, but at least it works consistently and in a simple manner.)I would like that this project deprecates itself, by putting up a notice in the documentation about the negative consequences of using the plugin, and by pushing an update that prints out a similar warning to STDERR any time someone does
rbenv rehash
or invokes a rbenv-bundler-generated binstub. The project's documentation could also suggest alternative solutions for avoidingbundle exec
, such as Bundler's--binstubs
.The text was updated successfully, but these errors were encountered: