Details

    • Type: Improvement Improvement
    • Status: Open Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: JRuby 1.6.6
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Number of attachments :
      0

      Description

      Hi, have you ever thought of pushing your changes to Rubygems upstream? I've been over your modifications and none of them will break the Rubygems, if they are properly conditioned. I think it would be feasible and save you (yes and me ) a lot of unnecessary work.
      I'd be glad to help you with this.

      Thank you,
      Bohuslav "Slavek" Kabrda.

        Activity

        Hide
        Charles Oliver Nutter added a comment -

        We have started sending pull requests for a few of the minor changes, but our hooks for Maven support need a bit more time and effort. Ideally, we'd come up with a clean, simple way anyone could hook the spec and download phases like we do, and then just piggy-back off that.

        If you'd like to help, you could assist us in putting together pull requests for non-Maven code and help us come up with a minimal patch for RubyGems to allow those hooks.

        Show
        Charles Oliver Nutter added a comment - We have started sending pull requests for a few of the minor changes, but our hooks for Maven support need a bit more time and effort. Ideally, we'd come up with a clean, simple way anyone could hook the spec and download phases like we do, and then just piggy-back off that. If you'd like to help, you could assist us in putting together pull requests for non-Maven code and help us come up with a minimal patch for RubyGems to allow those hooks.
        Hide
        Bohuslav "Slavek" Kabrda added a comment -

        That's a great idea for Rubygems. Here are my thoughts on this:
        Do you mean to provide the hooks for anyone or just the different Ruby implementations? Because it should be fairly easy to add a conditional like:

        case Gem::ConfigMap[:arch]
        when /java/, /jruby/ then
        ...
        else
        ...
        end

        If you are looking for a solution for really anyone, I would suggest using something like this:
        At the very end of the spec_fetcher.rb, where you are currently loading rubygem/maven_gemify, there can be something like:

        begin
        require 'fetcher_hook'
        rescue LoadError
        end

        Now, the fetcher_hook.rb can be placed somewhere under JRuby libraries, so it gets loaded from the standard load path. If not present (or if deleted), like in the MRI Ruby, it will simply not get loaded and the classes won't get monkey-patched. Or, if the user wishes, he can run jruby/ruby/whatever with RUBYOPT="/directory/containing/that/file", so that his own file gets loaded instead.

        Would any of these options be acceptable? (Personally, I'm starting to like the second one, as it is more flexible.)

        Thank you,
        Bohuslav "Slavek" Kabrda.

        Show
        Bohuslav "Slavek" Kabrda added a comment - That's a great idea for Rubygems. Here are my thoughts on this: Do you mean to provide the hooks for anyone or just the different Ruby implementations? Because it should be fairly easy to add a conditional like: case Gem::ConfigMap [:arch] when /java/, /jruby/ then ... else ... end If you are looking for a solution for really anyone, I would suggest using something like this: At the very end of the spec_fetcher.rb, where you are currently loading rubygem/maven_gemify, there can be something like: begin require 'fetcher_hook' rescue LoadError end Now, the fetcher_hook.rb can be placed somewhere under JRuby libraries, so it gets loaded from the standard load path. If not present (or if deleted), like in the MRI Ruby, it will simply not get loaded and the classes won't get monkey-patched. Or, if the user wishes, he can run jruby/ruby/whatever with RUBYOPT="/directory/containing/that/file", so that his own file gets loaded instead. Would any of these options be acceptable? (Personally, I'm starting to like the second one, as it is more flexible.) Thank you, Bohuslav "Slavek" Kabrda.
        Hide
        Bohuslav "Slavek" Kabrda added a comment -

        Hi Charles,
        any thoughts on this, or is this postponed to some other version?

        Thanks!

        Show
        Bohuslav "Slavek" Kabrda added a comment - Hi Charles, any thoughts on this, or is this postponed to some other version? Thanks!
        Hide
        Charles Oliver Nutter added a comment -

        Sorry for the delay on this.

        We have worked to get some changes pushed upstream, but I have not reviewed them in a while. This is still outstanding. I will mark it for 1.7.0 so we'll hopefully get as much of our patching into upstream as we can before the final release.

        Show
        Charles Oliver Nutter added a comment - Sorry for the delay on this. We have worked to get some changes pushed upstream, but I have not reviewed them in a while. This is still outstanding. I will mark it for 1.7.0 so we'll hopefully get as much of our patching into upstream as we can before the final release.
        Hide
        Charles Oliver Nutter added a comment -

        With the removal of maven gem support, there are three outstanding pull requests that would bring RubyGems 1.8.x in line with our copy:

        https://github.com/rubygems/rubygems/pull/370

        https://github.com/rubygems/rubygems/pull/371

        https://github.com/rubygems/rubygems/pull/380

        Once these are in, we'll be in sync with RG 1.8 proper.

        Show
        Charles Oliver Nutter added a comment - With the removal of maven gem support, there are three outstanding pull requests that would bring RubyGems 1.8.x in line with our copy: https://github.com/rubygems/rubygems/pull/370 https://github.com/rubygems/rubygems/pull/371 https://github.com/rubygems/rubygems/pull/380 Once these are in, we'll be in sync with RG 1.8 proper.

          People

          • Assignee:
            Thomas E Enebo
            Reporter:
            Bohuslav "Slavek" Kabrda
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated: