sonatype / nexus-ruby-support

26 stars 7 forks source link

bundler API ignores prereleased versions #3

Closed mkristian closed 11 years ago

mkristian commented 11 years ago

bundler API ignores prereleased versions of gems

mkristian commented 11 years ago

tests are pending but it is implemented

jamlevi commented 11 years ago

I've built the latest plugin @2732aab71d and this is not working. I tried both:

The call yields: ERROR: Could not find a valid gem 'omniauth-ldap-1.0.3.opower' (>= 0) in any repository

Below is the DEBUG output and it appears only latest_specs is being used, while the prerelease gem I am attempting to download is listed only in prerelease_specs.

jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.nexus.plugins.ruby.hosted.DefaultRubyHostedRepository - getTargetsForRequest() :: opower-ruby-gems:/latest_specs.4.8.gz jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.nexus.proxy.target.DefaultTargetRegistry - Resolving targets for repository='opower-ruby-gems' for path='/latest_specs.4.8.gz' jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer - Checking isPermitted() with perms: [nexus:target:rubygems:opower-ruby-gems:read, nexus:target:any:opower-ruby-gems:read] jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.nexus.rest.ContentPlexusResource - Created ResourceStore request for /repositories/opower-ruby-gems/latest_specs.4.8.gz jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.nexus.plugins.ruby.hosted.DefaultRubyHostedRepository - getTargetsForRequest() :: opower-ruby-gems:/latest_specs.4.8.gz jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.nexus.proxy.target.DefaultTargetRegistry - Resolving targets for repository='opower-ruby-gems' for path='/latest_specs.4.8.gz' jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer - Checking isPermitted() with perms: [nexus:target:any:opower-ruby-gems:read, nexus:target:rubygems:opower-ruby-gems:read] jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.nexus.plugins.ruby.hosted.DefaultRubyHostedRepository - opower-ruby-gems.retrieveItem() :: ResourceStoreRequest(requestPath="/latest_specs.4.8.gz") jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.nexus.plugins.ruby.fs.RubyFSLocalRepositoryStorage - /latest_specs.4.8.gz --> /opt/nexus/sonatype-work/nexus/storage/opower-ruby-gems/latest_specs.4.8.gz jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - eu.medsea.mimeutil.MimeUtil2 - Getting MIME types for file name [/opt/nexus/sonatype-work/nexus/storage/opower-ruby-gems/latest_specs.4.8.gz]. jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - eu.medsea.mimeutil.MimeUtil2 - Retrieved MIME types [application/x-gzip] jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.nexus.proxy.attributes.DefaultLSAttributeStorage - Loading attributes on UID=opower-ruby-gems:/latest_specs.4.8.gz jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.nexus.plugins.ruby.fs.RubyFSLocalRepositoryStorage - /.nexus/attributes/latest_specs.4.8.gz --> /opt/nexus/sonatype-work/nexus/storage/opower-ruby-gems/.nexus/attributes/latest_specs.4.8.gz jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - eu.medsea.mimeutil.MimeUtil2 - Getting MIME types for file name [/opt/nexus/sonatype-work/nexus/storage/opower-ruby-gems/.nexus/attributes/latest_specs.4.8.gz]. jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - eu.medsea.mimeutil.MimeUtil2 - Retrieved MIME types [application/x-gzip] jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.nexus.plugins.ruby.hosted.DefaultRubyHostedRepository - Item ResourceStoreRequest(requestPath="/latest_specs.4.8.gz") found in local storage. jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.plexus.appevents.AbstractSimpleEventMulticaster - Notifying 52 EventListener about event org.sonatype.nexus.proxy.events.RepositoryItemEventRetrieve fired (RepositoryItemEventRetrieve(sender="Opower Ruby Gems" [id=opower-ruby-gems], opower-ruby-gems:/latest_specs.4.8.gz)) jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus - Event 'RepositoryItemEventRetrieve(sender="Opower Ruby Gems" [id=opower-ruby-gems], opower-ruby-gems:/latest_specs.4.8.gz)' fired jvm 1 | 2013-04-22 19:04:37 DEBUG [qtp869724450-91] - org.sonatype.nexus.plugins.ruby.hosted.DefaultRubyHostedRepository - opower-ruby-gems retrieveItem() :: FOUND opower-ruby-gems:/latest_specs.4.8.gz

mkristian commented 11 years ago

to install a specific version please use the version parameter gem install omniauth-ldap -v1.0.3.opower

jamlevi commented 11 years ago

Ok, yes, that does work to install a prerelease gem, but what is the syntax to use inside a Gemfile?

I have tried gem 'omniauth-ldap', '1.0.3.opower' and gem 'omniauth-ldap', '= 1.0.3.opower' in accordance with http://gembundler.com/v1.3/gemfile.html, to no avail, using bundler-1.3.5. Below is verbose output:

$ bundle --verbose Fetching from: https://nexus-re.va.opower.it/nexus/content/repositories/opower-ruby-gems/api/v1/dependencies HTTP Success Fetching gem metadata from https://nexus-re.va.opower.it/nexus/content/repositories/opower-ruby-gems/ Query List: ["thor", "sysexits", "net-http-persistent", "json", "git", "mail", "client-release-tools", "omniauth-ldap"] Query Gemcutter Dependency Endpoint API: thor,sysexits,net-http-persistent,json,git,mail,client-release-tools,omniauth-ldap Fetching from: https://nexus-re.va.opower.it/nexus/content/repositories/opower-ruby-gems/api/v1/dependencies?gems=thor,sysexits,net-http-persistent,json,git,mail,client-release-tools,omniauth-ldap HTTP Success Query List: ["activesupport", "mime-types", "treetop", "i18n", "rest-client"] Query Gemcutter Dependency Endpoint API: activesupport,mime-types,treetop,i18n,rest-client Fetching from: https://nexus-re.va.opower.it/nexus/content/repositories/opower-ruby-gems/api/v1/dependencies?gems=activesupport,mime-types,treetop,i18n,rest-client HTTP Success Query List: ["multi_json", "polyglot"] Query Gemcutter Dependency Endpoint API: multi_json,polyglot Fetching from: https://nexus-re.va.opower.it/nexus/content/repositories/opower-ruby-gems/api/v1/dependencies?gems=multi_json,polyglot HTTP Success Query List: [] Resolving dependencies... Could not find omniauth-ldap-1.0.3.opower in any of the sources Bundler::GemNotFound: Could not find omniauth-ldap-1.0.3.opower in any of the sources /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in block in materialize' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:inmap!' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in materialize' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/lib/bundler/definition.rb:114:inspecs' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/lib/bundler/definition.rb:109:in resolve_remotely!' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/lib/bundler/installer.rb:83:inrun' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/lib/bundler/installer.rb:14:in install' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/lib/bundler/cli.rb:247:ininstall' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/lib/bundler/vendor/thor/task.rb:27:in run' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/lib/bundler/vendor/thor/invocation.rb:120:ininvoke_task' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/lib/bundler/vendor/thor.rb:344:in dispatch' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/lib/bundler/vendor/thor/base.rb:434:instart' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/bin/bundle:20:in block in <top (required)>' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/lib/bundler/friendly_errors.rb:3:inwith_friendly_errors' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.3.5/bin/bundle:20:in <top (required)>' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/bin/bundle:19:inload' /Users/jameslevinson/.rvm/gems/ruby-1.9.2-p290/bin/bundle:19:in `

'

mkristian commented 11 years ago

that is a bug - I can reproduce the problem. will have a look into today.

mkristian commented 11 years ago

now the prereleased versions can be used with bundler's Gemfile. sorry for the slow fix (was caught up with relocating . . .)

jamlevi commented 11 years ago

That's great. Thanks so much. Proceeding to build and test.

jamlevi commented 11 years ago

Confirmed. Pre-release version download works from a Gemfile.