发布perl模块时,是否有一种自动方法可以从"git log"构建"Changes"文件?



这是一个特定于perl模块的问题:

我已经在git中有了我的历史记录和版本标签,所以在发布模块更新之前将./Changesgit log同步会很好。

具体来说,我正在寻找能够以perl模块Changes文件应该用于CPAN摘要的格式生成Changes文件的东西:

<version>   <date>
Change 5
Change 6
<version>   <date>
Change 3
Change 4
<version>   <date>
Change 1
Change 2

按照我编写提交的方式,git log --online条目的格式对于Changes文件是正确的,没有不必要的噪声。至少就目前而言,由于我是唯一的作者,这是一个一贯的政策。

如何使git --online基于标记创建一个版本文件,并迭代地获得每个标记的--online条目?

我采取了一种不同的方法,自动生成一个由我的gpg密钥签名的发布文件,作为cpan发布的一部分。

如果在发布过程中使用Dist::Zilla,则可以将其添加到Dist.ini中https://metacpan.org/pod/Dist::Zilla::Plugin::SignReleaseNotes

我用它在github.com上发布我的模块的发布说明,其中包含cpan发布文件的校验和和以及自上次发布以来的git提交,所有这些都在一条签名消息中。看见https://github.com/perl-net-saml2/perl-Net-SAML2/releases例如。

我仍然保留一个单独的Changes文件。如果这有帮助的话,如果没有的话,里面的代码将向你展示如何在最新的标签和以前的标签之间进行在线提交。

有很多程序会根据Git提交历史生成变更日志文件(只需在Github上搜索"gitlog2changelog"之类的内容(。我过去甚至用过它们。

但这是个糟糕的主意。

您的文档将已经包含一个指向Git回购的链接。因此,任何想要它的人都可以访问您的提交历史记录。但是,根据你的提交和合并策略,这可能包含太多的信息,对大多数人来说都不有用。

变更日志(至少在我看来(应该是项目中变更的更高级别摘要。您应该阅读提交历史记录,并使用它来创建一个有用的更改摘要。

有关变更日志的详细信息,请参阅保留变更日志。

最新更新