Make license/licenses field mandatory

Jon jon.forums at
Thu Oct 13 09:41:58 EDT 2011

On Thu, 13 Oct 2011 01:02:31 +0200
Pavol Rusnak <prusnak at> wrote:

> On 12/10/11 20:29, Jon wrote:
> > Is it your perspective that the field is mandatory and the field's value must be something other than one of the following?
> > 
> >   s.license = ""
> >     - or -
> >   s.licenses = []
> You can put s.license = "Proprietary", s.license = "Non-commercial" or
> something similar if you don't want to use common FOSS license(s).

Similar to other responses, I see value in making 'licences' mandatory for gem building, say

   gem build sooper.gemspec
   ERROR:  While executing gem ... (Gem::InvalidSpecificationException)
       licenses may not be empty

but I don't support specific content checks or effectively pushing organization specific policy decisions upstream into RG.

I think it could be very useful if said "To help you catch accidental pushes and help us manage removals, if we see your gem's metadata has licenses =~ /SOME_PATTERN/ we'll skip deployment of your gem." Or whatever policy (potentially changed in the future) makes sense based upon real-world usage patterns.

But as each gem's 'metadata' file can be slurped, analyzed and the gem black/white-listed according to an one's needs, I don't believe RG should do anything more than simply requiring 'licences' on build similar to requiring 'authors'

> > If the field is not present and "correct", do you believe things similar to `gem build mygem.gemspec` should refuse to create a .gem?
> Yes. I think gem build foo.gemspec should refuse to create a gem when
> both license and licenses are empty. (We might want to check also on gem
> push, but that's probably not necessary).

Agree on `build` but strongly disagree on `push` as (a) this type of policy constraint doesn't belong in RG, and (b) implementation could complicate/destabilize RG and, in the end, probably be easily subverted.


twitter: @jonforums

Most people die of a sort of creeping common sense, and discover when it
is too late that the only things one never regrets are one's mistakes.
                                                           - Oscar Wilde

More information about the RubyGems-Developers mailing list