Details

    • Type: Improvement Improvement
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: JRuby 1.6
    • Component/s: Extensions
    • Labels:
      None
    • Number of attachments :
      0

      Description

      A few items I think need to be improved in the new Maven RubyGems support.

      • The maven_gemify.rb file is not the most canonical Ruby code. It could use some cleanup.
      • I would feel comfortable if we had some measure of control over the gemify plugin itself. That could mean simply getting commit access, moving it to the JRuby account on github, or something similar. We depend on a lot of third-party libraries, of course, but if there's a bug in gemify we need a free hand to fix it.

        Activity

        Hide
        Charles Oliver Nutter added a comment -

        We need to keep in mind a point of paramount importance: the names we choose must work in gemspecs. If I push a gem that depends on a name that breaks RubyGems, many people would be very unhappy with me...

        The colon version appears to fail in RubyGems when attempting to install dependencies. Could just be a missing piece of logic? Below, both forms build ok but only the all-dots form manages to resolve and install the dependency:

        ~/projects/cloby ➔ gem build cloby.gemspec 
        WARNING:  description and summary are identical
          Successfully built RubyGem
          Name: cloby
          Version: 0.0.2
          File: cloby-0.0.2-java.gem
        
        ~/projects/cloby ➔ gem uninstall org.clojure.clojure
        Successfully uninstalled org.clojure.clojure-1.2.0-java
        
        ~/projects/cloby ➔ gem install cloby-0.0.2-java.gem 
        ERROR:  Error installing cloby-0.0.2-java.gem:
        	cloby requires org.clojure:clojure (>= 0, runtime)
        
        ~/projects/cloby ➔ vi cloby.gemspec 
        
        ~/projects/cloby ➔ gem build cloby.gemspec 
        WARNING:  description and summary are identical
          Successfully built RubyGem
          Name: cloby
          Version: 0.0.2
          File: cloby-0.0.2-java.gem
        
        ~/projects/cloby ➔ gem install cloby-0.0.2-java.gem 
        Successfully installed org.clojure.clojure-1.2.0-java
        Successfully installed cloby-0.0.2-java
        2 gems installed
        

        I'm not opposed to adding another item to the name, like prefixing it with "mvn." and unconditionally treating that as a maven gem. That is similar to the namespacing people do by inserting their username in front of an existing gem to make it their own release of that gem (a la mojombo-jekyll and similar). I just worry about the names getting too long. Perhaps four characters is not too much to ask?

        Show
        Charles Oliver Nutter added a comment - We need to keep in mind a point of paramount importance: the names we choose must work in gemspecs. If I push a gem that depends on a name that breaks RubyGems, many people would be very unhappy with me... The colon version appears to fail in RubyGems when attempting to install dependencies. Could just be a missing piece of logic? Below, both forms build ok but only the all-dots form manages to resolve and install the dependency: ~/projects/cloby ➔ gem build cloby.gemspec WARNING: description and summary are identical Successfully built RubyGem Name: cloby Version: 0.0.2 File: cloby-0.0.2-java.gem ~/projects/cloby ➔ gem uninstall org.clojure.clojure Successfully uninstalled org.clojure.clojure-1.2.0-java ~/projects/cloby ➔ gem install cloby-0.0.2-java.gem ERROR: Error installing cloby-0.0.2-java.gem: cloby requires org.clojure:clojure (>= 0, runtime) ~/projects/cloby ➔ vi cloby.gemspec ~/projects/cloby ➔ gem build cloby.gemspec WARNING: description and summary are identical Successfully built RubyGem Name: cloby Version: 0.0.2 File: cloby-0.0.2-java.gem ~/projects/cloby ➔ gem install cloby-0.0.2-java.gem Successfully installed org.clojure.clojure-1.2.0-java Successfully installed cloby-0.0.2-java 2 gems installed I'm not opposed to adding another item to the name, like prefixing it with "mvn." and unconditionally treating that as a maven gem. That is similar to the namespacing people do by inserting their username in front of an existing gem to make it their own release of that gem (a la mojombo-jekyll and similar). I just worry about the names getting too long. Perhaps four characters is not too much to ask?
        Hide
        kristian meier added a comment -

        the problem with the ':' is that the gemify-maven-plugin needs to use the ':' as well when setting up the gemspec for the gem - right now it use the '.'. so the above issue can be fixed. personally I would use the 'mvn:' on top of it to be on the safe side in the long run.

        Show
        kristian meier added a comment - the problem with the ':' is that the gemify-maven-plugin needs to use the ':' as well when setting up the gemspec for the gem - right now it use the '.'. so the above issue can be fixed. personally I would use the 'mvn:' on top of it to be on the safe side in the long run.
        Hide
        Douglas Campos added a comment -

        +1 on 'mvn:' namespacing, for the sake of clarity and code simplicity

        Show
        Douglas Campos added a comment - +1 on 'mvn:' namespacing, for the sake of clarity and code simplicity
        Hide
        kristian meier added a comment -

        'mvn:' would solve this problem as well: http://jira.codehaus.org/browse/JRUBY-5344

        Show
        kristian meier added a comment - 'mvn:' would solve this problem as well: http://jira.codehaus.org/browse/JRUBY-5344
        Hide
        Nick Sieger added a comment -

        As of 2fc90bd0 I think most of these issues are fixed. Open a new bug for new features/suggestions.

        Show
        Nick Sieger added a comment - As of 2fc90bd0 I think most of these issues are fixed. Open a new bug for new features/suggestions.

          People

          • Assignee:
            Unassigned
            Reporter:
            Charles Oliver Nutter
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: