(#7656) Port PMT codebase into Puppet core
Before this patch, the Puppet Module Tool (PMT) codebase lived in it's
own project.
This patch ports the PMT codebase, mainly everything under the former
lib/puppet/module directory, into core Puppet with the following major
changes and refactorings:
The PMT codebase lives under lib/puppet/ and lib/puppet/module_tool
in Puppet core.
The following files are being renamed:
- lib/puppet/module/tool/tool.rb
tool.rb is being renamed to module_tool.rb
The following files are not being ported over:
- lib/puppet/module/tool/utils/settings.rb
- lib/puppet/module/tool/cli.rb
- lib/puppet/module/tool/applications/freezer.rb
- lib/puppet/module/tool/applications/registrar.rb
- lib/puppet/module/tool/applications/releaser.rb
- lib/puppet/module/tool/applications/unreleaser.rb
settings.rb is not being ported over in favor of using core Puppet
settings logic.
cli.rb is not being ported over in favor of using the Puppet faces
API.
freezer.rb, registrar.rb, releaser.rb , and unreleaser.rb are
not being ported over as the features they support are not implemented.
The following PMT sub-commands are being removed:
- version
- repository
- usage
- changelog
The version, repository, usage, and changelog PMT sub-commands
are being removed in favor of using core Puppet settings logic,
versioning scheme, and help commands.
All ported applications: builder, checksummer, cleaner, generator,
installer, searcher, and unpacker, now return either status hashes,
Pathname objects, or an array of file paths. This change is to support
the faces API, each face action should return a value that can be used
in Ruby code, or printed to the console.
PMT tests and generator templates will be ported into core Puppet in
separate commits.