Dpl: Unable to deploy to forge.puppet.com

Created on 30 Jul 2016  Â·  20Comments  Â·  Source: travis-ci/dpl

Hi,
I'm currently unable to release anything to the forge, I think there is a dependency issue with json_pure? Here is the full built. And the logs:

travis_fold:end:dpl.0
travis_time:start:05c74ba5
travis_fold:start:dpl.1
Installing deploy dependencies
Fetching: json_pure-2.0.2.gem
Fetching: json_pure-2.0.2.gem (  2%)
Fetching: json_pure-2.0.2.gem (  4%)
Fetching: json_pure-2.0.2.gem (  6%)
Fetching: json_pure-2.0.2.gem (  8%)
Fetching: json_pure-2.0.2.gem ( 10%)
Fetching: json_pure-2.0.2.gem ( 12%)
Fetching: json_pure-2.0.2.gem ( 14%)
Fetching: json_pure-2.0.2.gem ( 16%)
Fetching: json_pure-2.0.2.gem ( 18%)
Fetching: json_pure-2.0.2.gem ( 20%)
Fetching: json_pure-2.0.2.gem ( 22%)
Fetching: json_pure-2.0.2.gem ( 24%)
Fetching: json_pure-2.0.2.gem ( 35%)
Fetching: json_pure-2.0.2.gem ( 47%)
Fetching: json_pure-2.0.2.gem ( 59%)
Fetching: json_pure-2.0.2.gem ( 71%)
Fetching: json_pure-2.0.2.gem ( 83%)
Fetching: json_pure-2.0.2.gem ( 94%)
Fetching: json_pure-2.0.2.gem (100%)
Fetching: json_pure-2.0.2.gem (100%)
ERROR:  Error installing puppet:
    json_pure requires Ruby version ~> 2.0.

travis_fold:end:dpl.1
/home/travis/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- puppet/face (LoadError)
    from /home/travis/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.17/lib/dpl/provider.rb:74:in `requires'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.17/lib/dpl/provider/puppet_forge.rb:6:in `<class:PuppetForge>'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.17/lib/dpl/provider/puppet_forge.rb:3:in `<class:Provider>'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.17/lib/dpl/provider/puppet_forge.rb:2:in `<module:DPL>'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.17/lib/dpl/provider/puppet_forge.rb:1:in `<top (required)>'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.17/lib/dpl/provider.rb:56:in `const_get'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.17/lib/dpl/provider.rb:56:in `block in new'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.17/lib/dpl/cli.rb:41:in `fold'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.17/lib/dpl/provider.rb:53:in `new'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.17/lib/dpl/cli.rb:31:in `run'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.17/lib/dpl/cli.rb:7:in `run'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.17/bin/dpl:5:in `<top (required)>'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/bin/dpl:23:in `load'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/bin/dpl:23:in `<main>'
failed to deploy
puppet_forge

Most helpful comment

1.8.24 should fix this problem now.

All 20 comments

Before the release we do a few tests, all with latest puppet and json_pure gem, which works without issues.

@BanzaiMan is there anything I can help to fix this? I saw in the commit history that there were a few changes for the json/json_pure gem that are unreleased, not sure if they fix the issue. I'm not aware of a solution to test a patched dpl version or the master branch :(

In our case travis automatically pulls the gem by some black magic.

You can fork and fix the puppet deployment provider. The deployment fails now because the specification of json_pure there is underspecified when they released a new version that requires Ruby 2+. I plan to fix it next week.

This gem seems to be rather complex. I'm trying to built a solution that works at ruby2.3.1 again, but I'm not sure if this will work again.

Pushed a potential fix to the ha-bug-puppet-forge branch. You can test it with:

deploy:
  provider: puppetforge
  edge:
    branch: ha-bug-puppet-forge
  â‹® # rest

thanks for the fast investigation @BanzaiMan! The patch throws an argument error:
https://travis-ci.org/voxpupuli/puppet-community_kickstarts/jobs/148966937#L554

dpl/provider.rb:67:in `requires': wrong number of arguments (3 for 2) (ArgumentError)

@bastelfreak Ooops. Sorry about that. Could you try again?

Hi. The error changed: https://travis-ci.org/voxpupuli/puppet-community_kickstarts/jobs/149119338#L567

/home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.18.travis.65.8/lib/dpl/provider.rb:57:in `const_get': /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-.8.18.travis.65.8/lib/dpl/provider/puppet_forge.rb:6: syntax error, unexpected tASSOC (SyntaxError)
requires 'json_pure', version: => '< 2.0', :load => 'json/pure'

I don't quite understand why travis uses ruby1.9 here. The tests itself run fine on ruby231

Ooops. Sorry about that. There was a syntax error in my fix. Could you try again?

Thanks, this works now:
https://travis-ci.org/voxpupuli/puppet-community_kickstarts/jobs/149191693#L573

Are you able to publish a release soon?

+1

HI @BanzaiMan, do you think you can do a release in the near future?

Hi @BanzaiMan, is it possible to get a release soon?

@BanzaiMan Bump for a release. Thanks!

Sorry about the delay. Could you try the updated commit before releasing this? Thanks.

https://github.com/travis-ci/dpl/pull/524

Thanks for the confirmation. I'm closing this now.

@BanzaiMan Would you be willing to re-open this ticket until the fix in #524 is published to rubygems so that travis uses it automatically without requiring a separate branch in .travis.yml, please?

1.8.24 should fix this problem now.

@BanzaiMan Thanks so much, Hiro!

Was this page helpful?
0 / 5 - 0 ratings