The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Version Bumping

I want the version of my distribution is bumped automatically after each release, and automatically assigned version should be trial.

For example: If I released version v0.0.1, the version of the next release should be v0.0.1.1 (see Version::Dotted::Semantic). When I release v0.0.1.1, the next should be v0.0.1.2, the next one — v0.0.1.3 and so on. When I decide it is time to non-trial release, I will set the version to v0.0.2 manually, release it, and will have automatically bumped version v0.0.2.1 for the next release.

This is implemented with three plugins: Hook:VersionProvider, Hook::ReleaseStatusProvider, and Hook::AfterRelease. The first one reads version from external file VERSION which contains only version and nothing more (ok, trailing whitespace is allowed) — it simplifies implementation, because there is no need in parsing dist.ini file. The second plugin lets Dist::Zilla know release status (trial or stable). The third plugin bumps the version after release, and writes bumped version back to the VERSION file.