notes blog about

The development and (Github, CPAN) release cycle

# Work on the project and test locally
perl Build.PL && ./Build && ./Build test && ./Build install

# Prepare the distro for CPAN
vi MANIFEST.SKIP       # do once; #!include_default
./Build manifest       # only files listed in MANIFEST will go into the distibution archive
vi lib/App/Monport.pm  # increase VERSION string - search BUILD.PL for 'version' or 'version_from'
vi Changes
podselect lib/App/Monport.pm > README.pod
perl Build.PL && ./Build && ./Build test && ./Build install && ./Build disttest && ./Build dist

# Commit to GitHub and tag it with the version from Changes
git commit -am 'commit message from Changes'
git tag v<version>  # <version> from Changes, ex. v1.01
git push --tags -u origin master

# Upload the distro using CPAN::Uploader
cpan-upload App-Monport-<version>.tar.gz --user reisinge

Creating a Module::Build Distribution

We show here how to create a Perl distribution using Module::Build build system with Module::Starter. The other Perl build system (we don’t show here) is ExtUtils::MakeMaker. For sophisticated distribution creation see Dist::Zilla.

Create config file ~/.module-starter/config:

author: Foo Bar
email: foo@bar.org
builder: Module::Build
verbose: 1
# Allow adding new modules to existing distro.
plugins: Module::Starter::AddModule

… or use module-starter (see below) with command line arguments like:

--author="Foo Bar" \
--email=foo@bar.org \
--mb \
--verbose \
--plugin=Module::Starter::AddModule

Run basic commands

Add modules

Run individual tests

Measure test coverage

Generate LICENSE using App::Software::License

software-license --holder 'Jozef Reisinger' --license Perl_5 --type notice --year $(date +"%Y") > LICENSE

For more see: