Hiya Folks! Right now, the HBase shell relies on an old version of JRuby (1.6, last released ~2 years ago) and a very old version of Ruby (1.8).
I'd like to start working towards refactoring the shell. Updating some of our underlying libraries will make it easier to fix up some of our low hanging improvements (start up latency, utf8 support). This got me wondering about what the bounds of changing are (esp for master). 1) How common is making use of the fact that our shell is actually and IRB session? Do we want to keep encouraging that for users? Could we change the focus of the IRB version to be developers of HBase? Could we just make a HBase client gem and provide instructions for using it in IRB? 2) However extensive our keeping IRB is, do we need to keep the same Ruby compatibility? Spanning Ruby 1.8 and 1.9 is a pain, but possible. (I know very few people still using 1.8 though) When Ruby 2 support lands supporting either of those won't be possible, because at that point JRuby will only support Ruby 2.1[1]. 3) Do we have any guidance on compatibility across versions for the shell? I couldn't find anything obvious. 4) Lacking #2, what do we want to ensure keeps working the same? Existing shell commands in the exact form they have now? Table variables (as opposed to setting a "current table" context for the shell session)? [1]: https://groups.google.com/d/msg/jruby-users/qmLpZ7qDwZo/J_iYViplcq4J -- Sean