mbtiny - A standalone authoring script for Module::Build::Tiny
mbtiny listdeps | cpanm
mbtiny test --release
mbtiny is a tool to help assemble your CPAN distributions. It's a minimalist tool that tries to come with as few surprises as possible, and thus provide a gentle learning curve for its users.
This regenerates the given files. If no files are given, it defaults to all six files it can regenerate. You usually want to do this when bumping the version of a module. It has the following options:
Bump the version of the distribution before regenerating. The default for this can be set in the configuration.
version = <new-version>
Set the version of the distribution before regenerating.
Scan for dependencies to include in the metafiles. The default for this can be set in the configuration.
Make the new version a trial version.
Create a git commit for the version bump. The default for this can be set in the configuration.
This will make regeneration more verbose.
This will cause it to not write anything to disk, this is only ever useful when combined with the verbose option.
It generates the following files:
This contain the code needed to build the dist using Module::Build::Tiny.
This contains the list of files in this distribution, and optionally descriptions.
The file containing most meta information about this distributions. Useful for both presenting information to the user as for installing the distribution.
This is the legacy meta file. This is mainly useful for bootstrapping on CPAN clients too old to support META.json but recent enough to support configure_requires.
A file containing a description of the project, based on the documentation of the main module.
This contains the license of the distribution.
This assembles a tarball and uploads it to CPAN.
Using a Config::Identity compatible .pause file in your home directory is recommended, but if it's absent or incomplete your credentials will be asked on the console.
Tag the current release with the current version. The default for this can be set in the configuration.
Push the current commit, and tag it --tag is also specified. The default for this can be set in the configuration.
This will enable silent mode
The location of your pause credentials
This runs all of the tests of a distribution. It takes two negatable options:
Run release tests. Defaults to false.
Run author tests. Defaults to true.
This will scan the lib/, script/ and t/ directories for dependencies and writes them to prereqs.json. It accepts the following option:
omit_core = version
This allows you to set a minimum perl version (e.g. 5.008001 or v5.8.1) whose core-provided dependencies will not be explicitly included.
omit = module
This will omit a specific from the dependencies, it can be specified multiple times.
This creates a new distribution. It takes one mandatory positional argument, the name of the new distribution, and up to six optional named arguments
The abstract of this new distribution. It defaults to an empty string.
The name of the author of this distribution. The default value is set in the configuration file.
The directory name for the new distribution. It defaults to the distribution name.
The email address of the author. The default value is set in the configuration file.
The license of the new distribution. It default is set in the configuration file, this is usually Perl_5.
The initial version of the new distribution. This defaults to 0.001.
Initialize a git repository on minting.
This creates or update your configuration file (at ~/.mbtiny/config). It takes one optional position argument that can take any of the following values:
This asks you about all configuration items that are currently empty. This is the default.
This asks you about all configuration items, even if they currently have a value.
This lists your current configuration.
This removes the current configuration file.
List all dependencies of this distribution. By default it prints a list of modules. If the json option option is given, it's printed as JSON instead.
This will cause it to print out the required versions along with the modules.
This will cause it to output the dependencies in JSON format, instead of a list format
This will cause it to list only modules whose requirement isn't met.
This will cause the list to include development-time dependencies, such as App::ModuleBuildTiny itself.
This will cause the list to exclude any prerequisites that are provided by that specific perl version.
Run the specified command in an assembled distribution. It takes one boolean argument:
This will cause mbtiny not to build the distribution (run Build.PL and Build) before running the command.
Runs the $SHELL, this is equivalent to mbtiny run --no-build $SHELL. It takes one argument.
mbtiny run --no-build $SHELL
This will cause mbtiny to build the distribution before running the shell.
This creates a distribution tarball.
This creates a directory containing all of the files of the distribution.
The metadata for the distribution is gathered from various sources.
The distribution name is taken from the local directory name.
The version, abstract and author are taken from the main module of the distribution.
The license is extracted from the POD, unless a metamerge file overrides this
Prerequisites are mostly taken from prereqs.json, prereqs.yml and (discouraged) cpanfile, except when injected explicitly (e.g. a configure dependency on Module::Build::Tiny).
A metamerge.json or metamerge.yml file can be used to merge any additional meta information you want (including dependencies). It is assumed to be in meta-spec 2 format unless otherwise specified.
To install App::ModuleBuildTiny, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell
For more information on module installation, please visit the detailed CPAN module installation guide.