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:
[0Ktravis_fold:end:dpl.0
[0Ktravis_time:start:05c74ba5
[0Ktravis_fold:start:dpl.1
[33mInstalling deploy dependencies[0m
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
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.
@BanzaiMan we just tested it, worked. https://travis-ci.org/voxpupuli/puppet-msoffice/jobs/172236476
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!
Most helpful comment
1.8.24 should fix this problem now.