NAME
App::Mypp - Maintain Your Perl Project
VERSION
0.2002
DESCRIPTION
"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.
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!
SYNOPSIS
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
SAMPLE CONFIG FILE
---
# 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.
SHARING THE MODULE
By default the CPAN::Uploader module is used to upload the module to
CPAN. This module uses "$HOME/.pause" to find login details:
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".
CHANGES FILE
The expected format in "Changes" is:
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.
ATTRIBUTES
config
$hash = $self->config;
Holds the config from "mypp.yml" or "MYPP_CONFIG" environment variable.
name
Holds the project name. The project name is extracted from the
"top_module", unless set in config file. Example: "foo-bar".
repository
Holds the project repository url. The url is extracted from the origin
git repo unless set.
top_module
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".
The project might look like this:
./foo-bar/lib/Foo/Bar.pm
Where "foo-bar" is the basename.
top_module_name
Returns the top module name, extracted from "top_module". Example value:
"Foo::Bar".
changes
Holds the latest information from "Changes". Example:
{
text => qq(0.03 .... \n * Something has changed),
version => 0.03,
}
dist_file
Returns the name of the target dist file.
pause_info
Holds information from "$HOME/.pause". See CPAN::Uploader for details.
Example:
{
user => 'johndoe',
password => 's3cret',
}
share_extension
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.
share_params
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.
force
Set by "--force"
SEE ALSO
* App::Cpanminus
* Dist::Zilla
* Shipit
* <http://jhthorsen.github.com/app-mypp>
BUGS
Report bugs and issues at <http://github.com/jhthorsen/app-mypp/issues>.
COPYRIGHT & LICENSE
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.
AUTHOR
Jan Henning Thorsen, "jhthorsen at cpan.org"