With the recent changes in the PMT tool, if you have both a Modulefile and metadata.json file, the Modulefile will be completely ignored, breaking current functionality. The ultimate goal is to get to this behavior of using the metadata.json file only but needs to be deprecated in a manner that still provides the current functionality with a warning and then removed in Puppet v4.
That deprecated functionality is outlined below.
[The changes with PMT Build have a] backwards-incompatible nature [that] will currently break the packaging of all of our modules.
Example:: We only declare dependencies in the Modulefile but not metadata.json. We also don't synchronize the versions in Modulefile and metadata.json because pmt prefers the Modulefile version over metadata.json invisibly.
Suggestion: The pmt should merge Modulefile and metadata.json entries, preferring the entries in Modulefile for conflicts. It should warn that support for Modulefile is deprecated and it will only use metadata.json in the future. It would also be helpful if it warned about every entry that exists in Modulefile but is different or non-existent in the metadata.json