Plugin Catalog - before-release
BeforeRelease plugins run only when you run
dzil release. They confirm that the distribution is in a proper state to release.
CheckChangesHasContent(also tagged: changelog)
This plugin ensures that your Changes file actually has some content since the last release. If it doesn't find any, it will abort the release process.
CheckExtraTests(also tagged: tests, tests-extra)
This plugin ensures that the tests in the xt/ directory pass before allowing a release. It is a complement to the
xtest command and an alternative to the ExtraTests and RunExtraTests plugins. (You should probably use RunExtraTests instead.)
CheckPrereqsIndexed(also tagged: prereqs)
This plugin will check every required package against the CPAN index to ensure that they're all real, installable packages. If any are unknown, it will prompt the user to continue or abort. This is especially useful if you're using AutoPrereqs, as it can be a little overzealous on occasion.
ConfirmRelease(also tagged: core)
This plugin displays the name of the distribution tarball about to be released, and asks you if you really mean to release it.
Git::Check(also tagged: git, version-control)
This plugin ensures that Git is in a clean state before releasing. This means you have no no untracked files or uncommitted changes in the working copy (execpt those you intend to commit as part of the release process).
Git::CheckFor::CorrectBranch(also tagged: git, version-control)
This plugin checks that you are on the correct branch before allowing a release. It prevents accidental releases being cut from topic branches.
Git::CheckFor::Fixups(also tagged: git, version-control)
This plugin checks that you have no fixup or squash commits remaining in your history since the last release. The presence of these commits is almost certainly an oversight, so if any are found the release is aborted.
Git::Tag(also tagged: after-release, git, version-control)
Once the release is done, this plugin will record this fact in Git by creating a tag. It also checks before a release to ensure that tag doesn't already exist (which would indicate you're trying to release the same version twice).
TestRelease(also tagged: core, tests)
This plugin extracts the tarball that's about to be released and ensures that it passes its tests. If any tests fail it aborts the release. You should be using this plugin. (It's included in @Basic.)