App::Mypp - Maintain Your Perl Project
0.2002
mypp is a result of me getting tired of doing the same stuff - or rather forgetting to do the same stuff - for each of my Perl projects. mypp does not feature the same things as Dist::Zilla, but I would like to think of mypp vs dzil as cpanm vs CPAN - or at least that is what I'm aiming for. (!) What I don't want to do is configure anything, so 1) it should just work 2) it might not work as you want it to.
mypp
Want to try it out? Run the line below in your favourite terminal:
wget -q http://github.com/jhthorsen/app-mypp/raw/master/script/mypp-packed -O - | perl -
Running that line will start the experimental code from github - meaning the latest release. Run at own risk - and don't forget to put your files under version control first!
Actions are also available with out "--", such as "init", "update", "test", "clean", "build" and "share".
mypp [action]; mypp --action; mypp --force update Makefile.PL mypp update t/00-basic.t
--- # Default to a converted version of top_module name: Foo-Bar # Default to a converted version of the project folder # Example: ./foo-bar/lib/Foo/Bar.pm, were "foo-bar" is the # project folder. top_module: lib/Foo/Bar.pm # Default to a converted version of top_module. top_module_name: Foo::Bar # Default to CPAN::Uploader. Can also be set through # MYPP_SHARE_MODULE environment variable. share_extension: AnyModuleName # Not in use if share_extension == CPAN::Uploader. Usage: # share_extension->upload_file($dist_file, share_params); share_params: [ { answer: 42 } ]
All config params are optional, since mypp tries to figure out the information for you.
By default the CPAN::Uploader module is used to upload the module to CPAN. This module uses $HOME/.pause to find login details:
$HOME/.pause
user your_pause_username password your_secret_pause_password
It also uses git to push changes and tag a new release:
git commit -a -m "$message_from_changes_file" git tag "$latest_version_in_changes_file" git push origin $current_branch git push --tags origin
The commit and tagging is done with -dist, while pushing the changes to origin is done with -share.
-dist
-share
The expected format in Changes is:
Changes
Some random header, for Example: Revision history for Foo-Bar 0.02 * Fix something * Add something else 0.01 Tue Apr 20 19:34:15 2010 * First release * Add some feature
mypp automatically adds the date before creating a dist.
$hash = $self->config;
Holds the config from mypp.yml or MYPP_CONFIG environment variable.
mypp.yml
MYPP_CONFIG
Holds the project name. The project name is extracted from the "top_module", unless set in config file. Example: foo-bar.
foo-bar
Holds the project repository url. The url is extracted from the origin git repo unless set.
Holds the top module location. This path is extracted from either name in the config file or the basename of the project. Example value: lib/Foo/Bar.pm.
name
lib/Foo/Bar.pm
The project might look like this:
./foo-bar/lib/Foo/Bar.pm
Where "foo-bar" is the basename.
Returns the top module name, extracted from "top_module". Example value: Foo::Bar.
Foo::Bar
Holds the latest information from Changes. Example:
{ text => qq(0.03 .... \n * Something has changed), version => 0.03, }
Returns the name of the target dist file.
Holds information from $HOME/.pause. See CPAN::Uploader for details. Example:
{ user => 'johndoe', password => 's3cret', }
Holds the classname of the module which should be used for sharing. This value can either come from the config file or the MYPP_SHARE_MODULE environment variable, or fallback to CPAN::Uploader.
MYPP_SHARE_MODULE
This attribute must hold an array ref, since it is flattened into a list when used as an argument to "share_extension"'s upload_file() method.
upload_file()
Set by --force
--force
App::Cpanminus
Dist::Zilla
Shipit
http://jhthorsen.github.com/app-mypp
Report bugs and issues at http://github.com/jhthorsen/app-mypp/issues.
Copyright 2007-2010 Jan Henning Thorsen, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Jan Henning Thorsen, jhthorsen at cpan.org
jhthorsen at cpan.org
To install App::Mypp, copy and paste the appropriate command in to your terminal.
cpanm
cpanm App::Mypp
CPAN shell
perl -MCPAN -e shell install App::Mypp
For more information on module installation, please visit the detailed CPAN module installation guide.