Support Rubinius

Issue #42 resolved
Evan Machnic created an issue

It doesn't seem possible to add Rubinius. See the following output:

○ → uru admin add /usr/local/rvm/rubies/rbx-2.1.1/bin --tag rbx
---> Unable to register `/usr/local/rvm/rubies/rbx-2.1.1/bin/ruby` due to missing ruby info

Comments (19)

  1. Jon repo owner

    I'd like to support Rubinius, but as I don't use Rubinius and haven't set it up on my Arch or Ubuntu Server VMs yet, I have no way of verifying my hackage attempts would work.

    That said, I think this is the problem area which then causes this to blow up. There may be other paths, but I think these are the main ones.

    I'm swamped until about mid-December, but if you've got the time to tweak a solution and test it, I'm interested in implementing it.

  2. Jon repo owner

    TODO:

    • Update this regex by starting it with something like \A(j?ruby|rubinius)...
    • Update this and double check all comparisons are first downcased.
    • Ensure this also works so that the correct exe is invoked when one does a uru ruby blah. Do not count on rubinius' ruby alias and always invoke as rbx.
    • Update this test to ensure description parsing doesn't get broken
  3. Evan Machnic reporter

    @jonforums thanks for the pointers in the code. I don't know if I will have bandwidth to dig in any time soon either (c'est la vie) but I will try.

  4. Jon repo owner

    @emachnic for grins, post the result of running something like rbx --version that give a full description similar to ruby --version. The fix nay simply be a clever tweak to the regex and viola...Rubinius is supported.

    If so, I might do a quick hacked up version release if it doesn't break things on my windows and linux systems. NTS: get the osx vm up and working on the new x64 machine.

  5. Evan Machnic reporter

    @jonforums Does this help?

    rubinius 2.1.1 ENG001037 in ~
      rbx --version
    rubinius 2.1.1 (2.1.0 be67ed17 2013-10-18 JI) [x86_64-darwin13.0.0]
    
    rubinius 2.1.1 ENG001037 in ~
      ruby --version
    rubinius 2.1.1 (2.1.0 be67ed17 2013-10-18 JI) [x86_64-darwin13.0.0]
    
    rubinius 2.1.1 ENG001037 in ~
      ls /usr/local/rvm/rubies/rbx-2.1.1/bin/
    gem irb rake    rbx ri  ruby    testrb
    
  6. Jon repo owner

    Yes, thank you.

    I'll build an updated darwin version and let you know when you can pick it up for testing from a dropbox location.

  7. Jon repo owner

    In this description string

    rubinius 2.1.1 (2.1.0 be67ed17 2013-10-18 JI) [x86_64-darwin13.0.0]
    

    what is rubinius version that everybody uses to identify what they're running? Is it 2.1.1 or 2.1.0?

    DECISION: version is 2.1.1. Always use the version info after rubinius rather than info inside (...)

  8. Jon repo owner

    Here are osx, linux, and windows versions of uru 0.6.4.alpha1 that have initial support for rubinius.

    https://www.dropbox.com/sh/bnd6ywqfchi7wgu/PKhaECx5w0

    To "upgrade", rename your old uru_rt exe to something else, say uru_rt-0.6.3, and copy the new uru_rt into the same folder. Verify you've got the new uru by running uru ver and you should see uru v0.6.4.alpha1

    In addition to all the normal commands like uru ls, uru admin add, uru admin add --tag, uru admin refresh --retag, uru admin rm, and switching between rubies and any other command listed in

    https://bitbucket.org/jonforums/uru/wiki/Examples

    I need you to test the following scenarios:

    1. uru ruby -e 'puts "Hello whatever Ruby engine you are!"' works for rubinius and any MRI and JRuby engines you have installed.
    2. Rubygem commands run via uru work for all your installed rubies. In particular, at least these: uru gem --version, uru gem list, uru gem out, uru gem i erubis

    If all appears to be good, I'll do some cleanup and push out an official 0.6.4 release.

    Bottom line: break things and report back any problems as separate issues. Make sure you put [rubinius] as the first part of the issue title for any rubinius specific issues.


    UPDATE: given rubinius' bin/ruby alias, may have to hoist rbx to the front in KnownRubies as usage like this and this and this may turn things flaky.

  9. Evan Machnic reporter

    @jonforums everything works great. Bonus is that I can use the chruby prompt info with bash-it to see which ruby I'm on. I'd say shipit

  10. Jon repo owner

    @emachnic great. I just uploaded 0.6.4.alpha2 to the same dropbox link. Please check and confirm that it also works, as it will be the version that I release.

    Also, using uru, chruby, and bash-it sounds cool.

    Would you take a moment and share your setup in a new wiki page linked to the main wiki page as the first item under Usage Tips and Tricks?

  11. Jon repo owner

    Never mind on the wiki page. I just found your version and will update the home page.

    Thanks for creating the wiki page :)

  12. Evan Machnic reporter

    Glad to see it updated. I did have one question that isn't really related to RBX.

    I'm working on a Chef cookbook and don't want the download links to break when new versions are uploaded. Is there any archive page that has all versions or something similar? Looks like the Downloads page only has latest version and the Tags only have the source code but not binary packages.

    Thanks

  13. Jon repo owner

    I only have the latest binary releases on the Downloads page for two reasons. First, it's beta quality code. Second, hosting sites like GitHub and now Google Code have disabled binary downloads as they often feel people "abuse" a downloads page.

    That said, now that uru is stabilizing, I want to make the binary downloads more "scriptable friendly" for things like Chef, Puppet, and http://chocolatey.org/ . I'm going to try out something like https://bintray.com/ and am open to suggestions.

    That said, currently I tag every release. Go to the downloads page

    https://bitbucket.org/jonforums/uru/downloads

    and click on the Tags tab. So perhaps you can tweak Chef to use download links like

    https://bitbucket.org/jonforums/uru/get/v0.6.3.tar.gz

    and build from source?

    This will all change if I go to bintray, but it's a start.

    Why don't you open up a new issue on this topic and we'll start working a solution.

  14. Log in to comment