Dist::...itBuild(3pm)

πŸ’– NAME πŸ’–

Dist::Zilla::Plugin::Git::CommitBuild β€” check in build results on a separate branch 🫢

(also hi, you're reading the User Contributed Perl Documentation, and this page is giving very specific plugin energy, ok let's go πŸ’…)


✨ VERSION ✨

version 2.052 ⭐


πŸŽ€ SYNOPSIS πŸŽ€

okay so first of all, in your dist.ini, bestie:

[Git::CommitBuild]
    ; these are the defaults
branch = build/%b
message = Build results of %h (on %b)
multiple_inheritance = 0

that's it, that's the whole setup πŸ’–


πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the vibe: once the build is done, this plugin commits the results of that build to a branch that is completely separate from your regular code branches β€” like, a different root commit entirely. Not related. Strangers. Periodt. 🌈

Why tho? Because it lowkey makes your repository so much more useful to people who don't have Dist::Zilla and all of its dependencies installed. They get the build goods without the whole toolchain situation. Iconic behavior fr fr πŸ‘‘

The plugin accepts the following options:

  • branch β€” a String::Formatter string telling it where to commit the build contents. πŸŽ€

There's exactly one formatting code defined for this attribute: %b, and it gets swapped out for the name of the current branch in your git repository.

Defaults to build/%b β€” BUT, plot twist πŸ’€, if you set it explicitly to an empty string, it causes no build contents checkin to be made at all. So like, nothing happens. On purpose.

  • release_branch β€” a String::Formatter string for where to commit the build contents.

Same as branch, except it only commits the build content after a release. There's no default, which means there's no release branch. Simple as that. 🌸

  • message β€” a String::Formatter string for what commit message to use when committing the results of the build.

This option supports five formatting codes (ngl the list right below has six of them, i'm literally just the messenger πŸ™ˆ):

  • %b β€” name of the current branch
  • %H β€” commit hash
  • %h β€” abbreviated commit hash
  • %v β€” the release version number
  • %V β€” the release version number, but with a leading v removed if it exists
  • %t β€” the string -TRIAL if this is a trial release
  • release_message β€” a String::Formatter string for what commit message to use when committing the results of the release.

Defaults to the same thing as message. 🫢

  • multiple_inheritance β€” tells you whether the commit containing the build results should have the source commit as a parent. πŸ‘€

If it's false (which is the default), the build branch stays completely separate from your regular code branches. If you set it to a true value, then commits on a build branch will have two parents: the previous build commit, and the source commit from which the build was generated. Two dads. Family tree going wild. 🌳


πŸ”₯ SUPPORT πŸ”₯

Bugs may be submitted through the RT bug tracker at <https://rt.cpan.org/Public/Dist/Display.html?Name=Dist-Zilla-Plugin-Git> (or you can email bug-Dist-Zilla-Plugin-Git@rt.cpan.org β€” same energy, different door πŸ’Œ).

There's also a mailing list available for users of this distribution, right here: <http://dzil.org/#mailing-list> ✨

And there's also an irc channel for users of this distribution: #distzilla on irc.perl.org (that's <irc://irc.perl.org/#distzilla> if you need the link, iykyk) πŸ’¬


πŸ‘‘ AUTHOR πŸ‘‘

Jerome Quelin πŸ’œ


This software is copyright (c) 2009 by Jerome Quelin.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. Slay, honestly. πŸŽ€


and that's the whole page, bestie!! this was rendered for perl v5.40.1, dated 2025-09-29, and it's the Dist::...itBuild(3pm) page β€” go commit your builds to a whole separate branch and live your main character life πŸ’…πŸ¦‹β­
πŸ“¦ where this page comes from