[Rubygems-developers] Specifying a platform
Gavin Sinclair
gsinclair at soyabean.com.au
Sat Apr 17 17:30:07 EDT 2004
Folks,
I'd like an opinion on the "platform" issue in RubyGems. I was
surprised to get this error when trying out a gemspec for ruby-dict.
$ gem -b ruby-dict.gemspec
Attempting to build gem spec 'ruby-dict.gemspec'
/usr/local/lib/ruby/site_ruby/1.8/rubygems/specification.rb:333:in `validate': Missing value for att
ribute platform (Gem::InvalidSpecificationException)
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/specification.rb:331:in `each'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/specification.rb:331:in `validate'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/builder.rb:85:in `build'
from /usr/local/bin/gem:494:in `build'
from /usr/local/bin/gem:493:in `each'
from /usr/local/bin/gem:493:in `build'
from /usr/local/bin/gem:124:in `run'
from /usr/local/bin/gem:679
There are a few points to make here.
1. The error message given there is a bit fearsome. I'm not sure what
the current policy on error messages is, but I'm sure this one can
be improved. I'll take advice and then make the change myself.
2. Why is a platform required? I understand platform to be "what kind
of machine this can run on", which is fine, but what does "Ruby"
mean as a platform? If a gem is platform-independent, does a
platform need to be specified? If we must have "Ruby" meaning
"platform-independent Ruby-based gem", can it be the default
setting?
Platform suggests to me a binary gem, I suppose.
3. Naming. I've brought this up before, but buried within a thread.
When I had "Gem::Platform::RUBY" specified as the platform for
"ruby-dict", it built fine, but the gem was named
"ruby-dict-ruby-0.9.2.gem".
That seems unappealing and unnecessary to me. If platform meant
purely a binary gem, then I could understand seeing gem names like
wx-windows-mswin-0.3.2.gem
wx-windows-osx-0.3.2.gem
etc.
But I would prefer to see
wx-windows-(mswin)-0.3.2.gem
wx-windows-(osx)-0.3.2.gem
etc.
And I prefer never to see
ruby-dict-ruby-0.9.2.gem
or
ruby-dict-(ruby)-0.9.2.gem
although the latter is more palatable :)
Cheers,
Gavin
More information about the Rubygems-developers
mailing list