Invalid gemspec because of the date format in specification

RubygemsBundlerRuby 1.9Ruby 1.9.2

Rubygems Problem Overview


When I include a gem that I made, thanks to Bundler (version 1.0.12), in a Gemfile and then I try to bundle or to rake just like that:

$ rake

I've got this error message:

Invalid gemspec in [/Users/zagzag/.rvm/gems/ruby-1.9.2-p180@foobar/specifications/myplugin-1.0.0.gemspec]: invalid date format in specification: "2011-04-21 00:00:00.000000000Z"

I'm on the last Mac OS X (10.6.4), with:

$ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.4.0]

and:

$ gem -v
Invalid gemspec in [/Users/zagzag/.rvm/gems/ruby-1.9.2-p180@foobar/specifications/myplugin-1.0.0.gemspec]: invalid date format in specification: "2011-04-21 00:00:00.000000000Z"
1.7.2

I really don't see how to solve this issue. Thanks for any ideas.

Rubygems Solutions


Solution 1 - Rubygems

Here is the way I fix the "invalid date format in specification" error:

1.) Go to the specifications folder located at:

/usr/local/lib/ruby/gems/1.8/specifications/

2.) Find the spec that is causing the problem.

3.) Change s.date = %q{2011-05-21 00:00:00.000000000Z} to s.date = %q{2011-05-21}

That's a WIN for me! Good Luck

Solution 2 - Rubygems

Here is the command to fix this for all your gems:

perl -p -i -e 's/ 00:00:00.000000000Z//' ~/gems/specifications/*.gemspec

It converts s.date = %q{2011-05-21 00:00:00.000000000Z} to s.date = %q{2011-05-21} and should fix your issue.

Solution 3 - Rubygems

Please notice the comment from Damian Nowak. These commands do possibly mess up your rubygems!

On Ubuntu 11.10 the following solved this error:

sudo gem install rubygems-update
sudo update_rubygems     

The following may work on some systems but not on Debian based:

sudo gem update --system

Solution 4 - Rubygems

You may upgraded your gem. To fix this you can edit the gemspecfile directly - from

2011-04-21 00:00:00.000000000Z

to

YYYY-MM-DD

Or upgrade your rails also

sudo gem update rails

It will fix the issue.

Solution 5 - Rubygems

Don't specify the time... just the date. 2011-04-21 should work fine.

Solution 6 - Rubygems

Had the same issue. It looks like a bug in rubygems. Here's the commit that fixed it: https://github.com/rubygems/rubygems/commit/21cccd55b823848c5e941093a615b0fdd6cd8bc7

You need to update rubygems and bundler to the latest versions. If you are still having issues after that, then you may need to remove and then reinstall any gems that are giving you problems.

Solution 7 - Rubygems

This is more of a comment to ben hall's answer, but i dont have that privilege yet it seems

gem updates didn't seem to work, im thinking it can't even load the gem because of the bad date format. manually changing the dates was too frustrating to go one by one, so a grep:

grep -i *.gemspec -e '.*s\.date.*=.*%q{\(....-..-..\) \(.*Z\)}

And for sed:

sed -i -e 's/\(.*\)s\.date.*=.*%q{\(....-..-..\) \(.*Z\)}/\1s.date = %q\{\2}/p' ./*.gemspec

And at your own risks!! I'm still a sed newbie, but it worked for me ;)

Solution 8 - Rubygems

On my slicehost server the specifications folder was located in a different spot. Here is the path:

/usr/lib/ruby/gems/1.8/specifications

The error provided should give the path to the specifications folder.

Solution 9 - Rubygems

The shotgun approach: Uninstall all gems and rerun bundler.

  1. gem list --no-version | xargs gem uninstall -aIx
  2. rm -i `rvm gemdir`/specifications/*.gemspec
  3. gem update --system
  4. gem install bundler
  5. bundle install

Solution 10 - Rubygems

(Until the bug fix gets into a stable release of Rubygems) I solved it by reinstalling the same version of any warning-generating gems using the --version switch of the gem command.

Solution 11 - Rubygems

As Ben Hall said, you must fix the gemspec file that may change for system to system. To know what file is see what file is tell in the error report, for example:

> Invalid gemspec in > [/var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec]: invalid date > format in specification: "2011-12-28 00:00:00.000000000Z"

In this example you must edit "/var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec" file and change "2011-12-28 00:00:00.000000000Z" for "2011-12-28" in s.date option.

Solution 12 - Rubygems

Had this problem still now. Updating Rubygems solved it fine:

gem update --system

Solution 13 - Rubygems

This is my environment:

RubyGems Environment:
- RUBYGEMS VERSION: 1.8.10
- RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.1.0]
- INSTALLATION DIRECTORY: /Users/user/.rvm/gems/ruby-1.9.2-p290@app
- RUBY EXECUTABLE: /Users/user/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
- EXECUTABLE DIRECTORY: /Users/user/.rvm/gems/ruby-1.9.2-p290@app/bin
- RUBYGEMS PLATFORMS:
  - ruby
  - x86_64-darwin-11
- GEM PATHS:
   - /Users/user/.rvm/gems/ruby-1.9.2-p290@app
   - /Users/user/.rvm/gems/ruby-1.9.2-p290@global
- GEM CONFIGURATION:
   - :update_sources => true
   - :verbose => true
   - :benchmark => false
   - :backtrace => false
   - :bulk_threshold => 1000
- REMOTE SOURCES:
   - http://rubygems.org/

I finally managed to find a cause / a way to prevent these errors on my system. I just revert to cucumber and cucumber-rails version 1.0.2. Using the latest versions was doing this...

Solution 14 - Rubygems

Even if you install the latest version of a gem with a valid date format, make sure to gem cleanup GEMNAME afterwards, since gem will still complain about the specifications for the older libraries.

Solution 15 - Rubygems

Reinstalling your gems can be the solution in many of these slightly different machine states.

In my case:

cd /Library/Ruby/Gems/1.8/specifications &&
sudo rm -rf *

In my case, the other more creative solutions failed.

My issue was getting Invalid gemspec when trying to use cocoapods. I ran gem install cocoapods again and everything was rosy.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionZag zag..View Question on Stackoverflow
Solution 1 - Rubygemsben hallView Answer on Stackoverflow
Solution 2 - RubygemsPhilippe CreuxView Answer on Stackoverflow
Solution 3 - RubygemsMarkView Answer on Stackoverflow
Solution 4 - RubygemsSayujView Answer on Stackoverflow
Solution 5 - RubygemsqrushView Answer on Stackoverflow
Solution 6 - RubygemsspdView Answer on Stackoverflow
Solution 7 - RubygemspdelanauzeView Answer on Stackoverflow
Solution 8 - Rubygemsben hallView Answer on Stackoverflow
Solution 9 - RubygemsJared BeckView Answer on Stackoverflow
Solution 10 - RubygemsPistosView Answer on Stackoverflow
Solution 11 - RubygemsPhoneixSView Answer on Stackoverflow
Solution 12 - RubygemspolarblauView Answer on Stackoverflow
Solution 13 - RubygemsRomain ChampourlierView Answer on Stackoverflow
Solution 14 - RubygemsDaniel TsadokView Answer on Stackoverflow
Solution 15 - Rubygemsjames_womackView Answer on Stackoverflow