Code Monkey home page Code Monkey logo

dist-zilla-pluginbundle-author-bbyrd's Introduction

NAME

Dist::Zilla::PluginBundle::Author::BBYRD - DZIL Author Bundle for BBYRD

SYNOPSIS

; Very similar to...
 
[ReportPhase]
 
; Makefile.PL maker
[MakeMaker]
 
[Authority]
authority = cpan:BBYRD
locate_comment = 1
 
[Git::NextVersion]
first_version = 0.90
 
[Git::GatherDir]
 
; File modifiers
[OurPkgVersion]
[PodWeaver]
config_plugin = @Author::BBYRD
 
; File pruners
[PruneCruft]
 
; Extra file creation
[ChangelogFromGit::CPAN::Changes]
file_name = CHANGES
copy_to_root = 0
 
[ManifestSkip]
[Manifest]
[License]
[ReadmeAnyFromPod / ReadmePodInRoot]    ; Pod README for Root (for GitHub, etc.)
[ReadmeAnyFromPod / ReadmeTextInBuild]  ; Text README for Build
[ReadmeAnyFromPod / ReadmeHTMLInBuild]  ; HTML README for Build (never POD, so it doesn't get installed)
[InstallGuide]
[ExecDir]
 
; Many tests
[@TestingMania]
disable = Test::Perl::Critic
disable = Test::EOL
disable = Test::Kwalitee
disable = Test::Pod::LinkCheck
disable = MetaTests
changelog = CHANGES
 
; POD tests
;[Test::PodSpelling]  ; Win32 install problems
 
; Other xt/* tests
[RunExtraTests]
;[MetaTests]  ; until Test::CPAN::Meta supports 2.0
[Test::EOL]
trailing_whitespace = 0
 
[Test::CheckDeps]
;[Test::Pod::LinkCheck]  ; Both of these are borked...
;[Test::Pod::No404s]     ; ...I really need to create my own
[Test::ReportPrereqs]
[Test::CheckManifest]
 
; Prereqs
[@Prereqs]
minimum_perl = 5.10.1
 
[CheckPrereqsIndexed]
 
; META maintenance
[MetaConfig]
[MetaJSON]
[MetaYAML]
 
[MetaNoIndex]
directory = t
directory = xt
directory = examples
directory = corpus
 
[MetaProvides::Package]
meta_noindex = 1        ; respect prior no_index directives
 
[GithubMeta]
issues = 1
user   = SineSwiper
 
[ContributorsFromGit]
 
[MetaResources]  ; only loaded if needed
x_IRC = $x_IRC
 
; Post-build plugins
[CopyFilesFromBuild]
move = .gitignore
move = README.pod
 
; Post-build Git plugins
[TravisYML]
notify_email = 0
notify_irc = irc://irc.perl.org/#sanity
; used for Travis::TestRelease
support_builddir = 1
; keep sanity from balking at these
post_before_install_build = cpanm --quiet --notest --skip-satisfied autovivification indirect multidimensional
 
[Git::CheckFor::CorrectBranch]
[Git::CommitBuild]
branch =
release_branch = build/%b
release_message = Release build of v%v (on %b)
 
[@Git]
allow_dirty = dist.ini
allow_dirty = .travis.yml
allow_dirty = README.pod
changelog =
commit_msg = Release v%v
push_to = origin master:master
push_to = origin build/master:build/master
 
[GitHub::Update]
metacpan = 1
 
[TestRelease]
[Travis::TestRelease]
create_builddir = 1
 
[ConfirmRelease]
[UploadToCPAN]
[InstallRelease]
[Clean]
 
; sanity deps
; authordep autovivification
; authordep indirect
; authordep multidimensional

DESCRIPTION

I frelling hate these things, but several releases in, I found myself needing to keep my dist.ini stuff in sync, which requires a single module to bind them to.

NAMING SCHEME

I'm a strong believer in structured order in the chaos that is the CPAN namespace. There's enough cruft in CPAN, with all of the forked modules, legacy stuff that should have been removed 10 years ago, and confusion over which modules are available vs. which ones actually work. (Which all stem from the same base problem, so I'm almost repeating myself...)

Like I said, I hate writing these personalized modules on CPAN. I even bantered around the idea of using MetaCPAN's author JSON input to store the plugin data. However, keeping the Author plugins separated from the real PluginBundles is a step in the right direction. See KENTNL's comments on the Author namespace for more information.

CAVEATS

This uses Dist::Zilla::Role::PluginBundle::Merged, so all of the plugins' arguments are available, using Merged's rules. Special care should be made with arguments that might not be unique with other plugins. (Eventually, I'll throw these into config_rename.)

If this is a problem, you might want to consider using @Filter.

One exception is x_IRC, which is detected and passed to MetaResources properly.

SEE ALSO

In building my ultimate dist.ini file, I did a bunch of research on which modules to cram in here. As a result, this is a pretty large set of plugins, but that's exactly how I like my DZIL. Feel free to research the modules listed here, as there's a bunch of good modules that you might want to include in your own dist.ini and/or Author bundle.

AVAILABILITY

The project homepage is https://github.com/SineSwiper/Dist-Zilla-PluginBundle-Author-BBYRD.

The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit http://www.perl.com/CPAN/ to find a CPAN site near you, or see https://metacpan.org/module/Dist::Zilla::PluginBundle::Author::BBYRD/.

SUPPORT

Internet Relay Chat

You can get live help by using IRC ( Internet Relay Chat ). If you don't know what IRC is, please read this excellent guide: http://en.wikipedia.org/wiki/Internet_Relay_Chat. Please be courteous and patient when talking to us, as we might be busy or sleeping! You can join those networks/channels and get help:

  • irc.perl.org

    You can connect to the server at 'irc.perl.org' and talk to this person for help: SineSwiper.

Bugs / Feature Requests

Please report any bugs or feature requests via https://github.com/SineSwiper/Dist-Zilla-PluginBundle-Author-BBYRD/issues.

AUTHOR

Brendan Byrd <[email protected]>

CONTRIBUTOR

Sergey Romanov <[email protected]>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2015 by Brendan Byrd.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)

dist-zilla-pluginbundle-author-bbyrd's People

Contributors

sergeyromanov avatar sineswiper avatar

Watchers

 avatar  avatar

Forkers

karenetheridge

dist-zilla-pluginbundle-author-bbyrd's Issues

Please do not force a minimum perl version that is too high

Forcing { minimum_perl => '5.10.1' } into all built distributions is IMO unreasonably hostile when many distributions can be installed on earlier perls. Moreover, you are also stating that your code will run on 5.10.1, without verifying that you haven't introduced syntax that requires a later version.

Instead, I would suggest using [MinimumPerl] in your bundle, without parameters, to automatically set the minimum perl version. You can ensure that it doesn't accidentally drift too high by employing [Test::MinimumVersion], with max_target_perl set individually in each distribution.

My plugin bundle sets Test::MinimumVersion.max_target_perl = 5.006 (yes, really!), and any distribution that requires a higher value sets it individually. This lets me stay aware of what the true minimum version is.

I came here because I was wondering why Dist-Zilla-Plugin-Config-Git was refusing to install on perl 5.8, and then discovered that it is actually quite happy there - it's just that its Makefile.PL was doing use 5.010001 without need.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.