The JRuby ruby-debug merge is complete, and I'd like to do releases of
ruby-debug-base, ruby-debug, and ruby-debug-ide. A number of bugs have
been fixed in ruby-debug-base, including an annoying JRuby deadlock. I
don't think there are any ruby-debug changes, but the version
dependencies are tight so they need to be released simultaneously. And
ruby-debug-ide has a nice performance improvement.
I've uploaded 0.10.5.rc1 gems to github:
https://github.com/ruby-debug/ruby-debug/downloads
Would someone mind pushing them to rubygems.org (or giving me the
necessary permissions to do so)?
Once they are up, I welcome any testing and bug reporting. Rocky and I
hope to do a final release by the end of the month.
Cheers,
John
Hi all,
The JRuby ruby-debug merge is complete, and I'd like to do releases of
ruby-debug-base, ruby-debug, and ruby-debug-ide. A number of bugs have
been fixed in ruby-debug-base, including an annoying JRuby deadlock. I
don't think there are any ruby-debug changes, but the version
dependencies are tight so they need to be released simultaneously. And
ruby-debug-ide has a nice performance improvement.
I've uploaded 0.10.5.rc1 gems to github:
https://github.com/ruby-debug/ruby-debug/downloads
Would someone mind pushing them to rubygems.org (or giving me the
necessary permissions to do so)?
Oleg or Dennis, are you on this list? What's the release process for
ruby-debug-ide? I know you've been bundling versions with RubyMine,
let's figure out how to coordinate a gem release.
That would be great.
Doesn't RubyMine have some magic that lets it load debug gems under
`bundle exec`, even when the Gemfile doesn't include them? Would it
need to be updated if ruby-debug-base adds a dependency? The new
version of ruby-debug-base has a new dependency on linecache in the
-java version, and a user is reporting a LoadError requiring it:
I can reproduce this when I check the 'bundle exec' checkbox in the
Run configuration.
The current less-magic way of doing it would be to require people to
add the necessary debugging gems to their Gemfile. There are three
cases:
1. They want to use just the command line debugger. In this case, the
Gemfile needs to contain ruby-debug (or ruby-debug19). Since
ruby-debug-base is a dependency, it will be included in the load path
automatically. This is, in fact, the current state of affairs for this
case; the Rails project Gemfile template even includes
ruby-debug/ruby-debug19 by default.
2. They want to use just the IDE debugger. In this case, the Gemfile
needs to contain both ruby-debug-base and ruby-debug-ide. Specifying
ruby-debug-ide alone is not enough, because ruby-debug-ide does not
depend on ruby-debug-base directly. (Instead it uses an extconf.rb
hack to conditionally install ruby-debug-base or ruby-debug-base19.)
3. They want to be able to use either the command line or IDE
debugger. This is problematic, because ruby-debug and ruby-debug-ide
conflict. There's no reason they should conflict, ruby-debug-ide is
just coded a bit sloppily. I fixed this partially here:
https://github.com/ruby-debug/ruby-debug-ide/commit/2028a4ce22bf920b407223dae647f5475344b9e3.
That allows both to be on the load path without conflict as long as
only one of the two is actually required. But requiring is the default
behavior with bundler; you're still screwed unless you use :require =>
false in the Gemfile. We can and should fix this in ruby-debug-ide.
This approach doesn't satisfy me though. Besides the confusing
configuration caused by the bifurcation into 1.8 and 1.9 gem variants,
requiring changes to the Gemfile elevates what should be a personal
choice of development tool to the level of project policy. Say I'm
working on fixing a bug in a third-party gem. I shouldn't have to edit
that project's Gemfile just to debug with the debugger of my choice.
Bundler needs a way to ensure that certain gems are placed on the load
path no matter what the current Gemfile specifies, so long as that
doesn't produce a dependency conflict. It sounds like the bundler
developers have committed to such a feature, but there's no timeline
for it: https://github.com/carlhuda/bundler/issues/183