Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

rake release fail (using gem bundler)

I published my first rubygem here: https://rubygems.org/gems/blomming_api (source code here: https://github.com/solyaris/blomming_api)

I used bundler, that create three rake tasks with bundle gem command:

$ rake -T
rake build    # Build blomming_api-0.3.7.gem into the pkg directory
rake install  # Build and install blomming_api-0.3.7.gem into system gems
rake release  # Create tag v0.3.7 and build and push blomming_api-0.3.7.gem to Rubygems

All fine if install locally the gem with rake install:

$ rake install
blomming_api 0.3.7 built to pkg/blomming_api-0.3.7.gem.
blomming_api (0.3.7) installed.

The problem arise when I try to release:

$ rake release
blomming_api 0.3.7 built to pkg/blomming_api-0.3.7.gem.
Tagged v0.3.7.
Untagging v0.3.7 due to error.
rake aborted!
Couldn't git push. `git push  2>&1' failed with the following output:

fatal: No configured push destination.
Either specify the URL from the command-line or configure a remote repository using

    git remote add <name> <url>

and then push using the remote name

    git push <name>


/home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:104:in `perform_git_push'
/home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:96:in `git_push'
/home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:77:in `block in release_gem'
/home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:129:in `tag_version'
/home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:77:in `release_gem'
/home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:50:in `block in install'
Tasks: TOP => release
(See full trace by running task with --trace)

Nevertheless I'm able to publish the gem with successfull gem push command:

$ gem push pkg/blomming_api-0.3.7.gem
Pushing gem to https://rubygems.org...
Successfully registered gem: blomming_api (0.3.7)

I presume that problem is on the git push remote configuration... Any idea to help me configure git to let rake release run ?

BTW, I already configured my rubygems credentials on /home/solyaris/.gem and git push on github run ok. I know... my git reluctance is big ;-) Thanks giorgio

like image 743
Giorgio Robino Avatar asked Dec 29 '13 10:12

Giorgio Robino


2 Answers

The command rake release attempts to push the code to the remote repository (implicitly assuming you're using git) and create a tag.

In your case, it looks like there is no git remote configured for your repository and the task fails.

I personally don't like such task. I tend to use

$ rake build

to build the package, then

$ gem push pkg/...

to publish the gem to RubyGems.

If you want to use rake release I suggest you to override the default implementation to skip/replace/customize the Git commit.

like image 171
Simone Carletti Avatar answered Nov 11 '22 01:11

Simone Carletti


rake release will attempt to tag your gem in git and push it to your remote. Sounds like you aren't configured to do git push without specifying the remote.

Try this to fix: git push -u origin master

If you can do git push after that without an error, rake release should work as well, although you might need to bump the version number of your gem if you've already pushed it to ruby gems, as I think ruby gems complains if you try to release a gem of the same version.

like image 36
xentek Avatar answered Nov 11 '22 02:11

xentek