puppetlabs-operations/puppet-puppet — pull request #131 by danieldreier (2014-11-22 23:11:45+00:00)
Title: Switch to metadata.json instead of modulefile

According to [the documentation](https://docs.puppetlabs.com/puppet/latest/reference/modules_publishing.html), use of the Modulefile was deprecated as of Puppet 3.6. Using a metadata.json also allows specifying distro compatibility and puppet version requirements that will be displayed on Puppet Forge.

This PR adds a metadata.json that's a straight conversion of our current modulefile, with puppet edition compatibility and OS compatibility added in. To help keep this working, the metadata-json-lint gem and corresponding rake task will validate the metadata.json as part of travis-ci testing, or by using `rake metadata`.

I believe that modulefile/metadata.json is only consumed by Puppet Forge and not by the agent, r10k, or librarian-puppet. Consequently, this shouldn't have any impact on older versions of puppet using or installing this module.

I'm currently only listing Debian 6 and 7, because we don't really have much in the way of test coverage for other distros and operating systems, and based on my casual experimentation things break on EL distros. I know @xaque208 and possibly others run this on FreeBSD and possibly other BSD platforms. We do have a module included for Gentoo support. I absolutely don't intend this as a prescriptive reduction in supported platforms, but a reduction in the expectations we set for platforms that lack explicit test coverage. If others feel strongly about it, I'd be (somewhat reluctantly) okay with adding more supported platforms provided we seek to add test coverage before publishing to the forge.